Heat oil in a large frying pan over medium-high heat.
Add onions. Sauté, stirring occasionally, for about 2-3 minutes or until browned.
Add ginger and garlic. Sauté, stirring occasionally, for 1 minute or until fragrant.
Add ground turmeric, ground cumin, ground coriander and red chili powder. Sauté, stirring, for few seconds or until aromatic.
Add tomato paste and chopped tomatoes. Sauté, stirring occasionally, for about 2-3 minutes or until the tomatoes breaks down and turn mushy.
Add tamarind and water. Stir to combine. Season with salt. Bring to a boil. Reduce heat and simmer for about 3-4 minutes.
Add fish. Add more water if needed. Stir gently. Cook, covered, for 7-8 minutes or until the fish is nearly done.
Remove lid. Stir in coconut milk and coriander (cilantro) leaves. Simmer for 2-3 minutes or until the fish is cooked.