Wash and cut fish into pieces. Season fish with salt, chili powder, turmeric powder, black pepper, ginger, and garlic paste. Set it aside for about 10 minutes.
Add vegetable oil to a pan on medium heat, followed by mustard seeds. Once the mustard seeds start to crack, add curry leaves, and pandan leaves.
Add garlic and ginger and stir-fry. And then add onion and fry until softened. Stir from time to time to stop the paste from sticking to the base of the pan.
Add chili powder, black pepper, salt, turmeric, fenugreek, and cinnamon stick, and saute for another one or two minutes. Make sure not to brown the spices.
Add tomato and green chilies and cook for a few minutes until soft, and remove the raw taste.
Add coconut milk and water then mix well. Bring the curry to a boil and then simmer for 5-minutes over low heat. Gently keep stirring the curry to avoid curdling.
Lastly, add the fish, reduce heat and let the fish cook for about 5 minutes stirring carefully, otherwise fish might break into small pieces. Season with salt as needed.
Turn off the heat and allow the curry to rest for 15-30 minutes for the flavors to blend.
Serve with rice, bread, naan, roti, appa, or indiappa.