Heat the oil in a nonstick pan, add the mustard seeds, cardamom
pods, cloves, and cinnamon stick and stir-fry for 20 seconds (be careful, the mustard seeds might pop). Add half of the chopped onion and stir-fry
for 4 to 5 minutes, or until the onions
Meanwhile, place the remaining onion, the ginger, garlic, ground coriander, and 2 ounces (1/4 cup) of coconut milk into a blender or food processor, and blend to a smooth puree.
Add the coconut milk mixture to the pan along with the whole green chiles, and salt, to taste. Cover the pan with a lid, and cook over a low heat for 12 to 15 minutes, giving the pot an occasional stir.
Add the remaining coconut milk, the water, the curry leaves, black pepper, garam masala, and the fish, and leave to cook undisturbed for about 3 to 5 minutes, or until the fish is opaque and cooked through.
To serve this dish, stir in the lemon juice and fresh cilantro. Taste and adjust the seasonings, if necessary, and then pour into bowls and serve with rice.