Place shallots, garlic, ginger, fennel seeds, ground turmeric, ground coriander and red chili powder in a food processor. Add a little water and process to a smooth paste. Set aside.
If using tamarind blocks, soak in water for about 10 minutes, squeeze out the pulp and discard the hard bits. Set aside.
Heat oil in a large frying pan or skillet over medium-high heat.
Add onions, green chilies and curry leaves. Sauté, stirring occasionally, for 2-3 minutes or until browned.
Add tomatoes. Sauté, stirring occasionally, for 2 minutes.
Add ground paste, fish, tamarind, coconut milk and water. Stir to combine. Season with salt. Simmer for 15-17 minutes or until fish is cooked through.
For tempering, heat oil in a small pan over medium heat. Add mustard seeds. Add shallots, dried red chilies and curry leaves. Sauté, stirring, for 1 minute or until shallots are browned.
Add tempered spices to the curry. Stir to combine.