To prepare the curry paste, combine all paste ingredients in a tall jug or milkshake container, then blend until smooth, adding water as needed.
In a large pot, heat oil over medium heat and add black mustard seeds, letting them sizzle for 30 seconds.
Stir in red onion and cook for 3 minutes until slightly golden.
Add the curry paste, cooking for another 3 minutes to enhance the spices and remove excess water.
Turn the heat up to medium-high, mix in tomato paste and tomato pulp, and cook for 2 minutes.
Pour in water, coconut milk, sugar, salt, and chili powder if using, then bring to a gentle simmer.
Stir in the fish and let it cook for 5–6 minutes depending on thickness.
Remove from heat, garnish with fresh coriander and green chilies, and serve.