1 1/4 to 1 1/2 lbs firm-flesh fish steaks or fillets , such as tilapia, striped bass, or lake trout, or an ocean fish such as snapper or cod
4 cups water
3 dried red chiles
2 fresh green bird chiles or serrano chiles
1 Tbsp ginger , cut into small matchsticks
1 garlic clove , smashed
1 large or 2 small scallions , sliced lengthwise into ribbons, then crosswise into 2-inch lengths
1 cup coriander leaves and stems , coarsely chopped
1 medium tomato , ripe or green, as you wish, finely chopped (I used green tomatoes)
1 1/2 to 2 tsp salt , or to taste
Freshly ground black or white pepper
2 Tbsp peanut oil or vegetable oil
4 dried red chiles
1 Tbsp thinly sliced garlic
Cut the fish into 1-to 2-inch pieces. Place in a small pot, add the water, whole chiles, ginger, garlic, scallions, and coriander, and bring to a boil, then immediately lower the heat and simmer for 5 minutes. (meanwhile prepare the flavored oil)
Heat the oil in a small heavy skillet. When it is hot, lower the heat and toss in the chiles and garlic and wait several seconds, until they start to brown but not burned, then remove from the heat. Add the oil, garlic and chiles to the hot soup, or put out as a table condiment.
Add the tomato and 1 1/2 tsp salt to the hot broth and simmer for another 5 minutes or so. Taste for salt and adjust if necessary, then add pepper to taste.
The soup is traditionally served with all the flavorings still in it. The chiles and garlic cloves are not meant to be eaten, but are just put aside by each diner as she or he eats. If you wish, you can strain the soup before serving it.