Marinate the cleaned fish pieces with ingredients listed under "for marination" and keep aside for half an hour. Heat 4 tbsp oil in a pan and fry the marinated fish pieces.
Add chopped onion, ginger & garlic,curry leaves and green chili to the remaining oil and saute till it is done. Add all masala powders and stir for a minute. Once the masala powders are fried well, add tomato pieces and saute till the oil starts appearing.
Add 2 cups of water & salt. Let it boil. Once it starts boiling add fried fish pieces and cook in low flame for about 7 - 10 minutes or until the fish pieces are covered in the gravy. Serve hot with rice.