The basic concept is the same as a regular game of Go Fish:
1. deal 5 cards to each player.
2. Players take turns, asking other players for specific cards (to match cards already in his or her hand).
3. If the asking player receives a card from the ask-ee, he or she can ask for a card from a different player.
4. If the ask-ee does not have the requested card, he or she tells the asker to "go fish," meaning "draw a card from the central deck.
5. The game ends when one player has matched up and discarded all of his or her cards OR the central stack has been used up. If that is the case, the player with the most matching sets wins!
For ESL, you can use this concept with vocabulary or grammar or phrases. For example, if you are playing with beginners, you could make a deck of cards with colors, animals, foods, family members, etc. If you're playing with more advanced students, you could make a deck with parts of speech or tenses. Here are links to other teachers who have done this activity, as well: http://www.eslcafe.com/idea/index.cgi?display:1159772723-2945.txt and http://www.eslcafe.com/idea/index.cgi?display:1084153220-91558.txt.