Clean and cut fish into pieces. I make my fish vendor do this for me and for this curry, I prefer the cuts to be into slices or steaks as they call it. Marinate the fish with lemon juice, pepper, salt and turmeric powder for 15-20 minutes.
In a pan, add little coconut oil and shallow fry fish on both sides. You can use any other oil as well but I feel coconut oil gives it a lovely character and taste.
In a separate pan (I use a mud chatti for the same), heat oil. Add curry leaves, ginger, garlic and green chillies, sauté for a minute.
Add the sliced onions and sauté until it turns translucent, don't let it turn brown. One of the things I have realised about Kerala cooking is that onions for the curry are almost never fried to golden or even a light brown.
Add turmeric powder and thin coconut milk. Close the lid and allow the curry to boil for 5-6 minutes on a medium flame. When the oil starts floating a bit on top, lower the flame and add lemon juice, mix well.
Now add the fried fish and bring to a boil. Do not stir once the fish is added as your fish might break. Also don't cook too much beyond this point since the fish is already fried.
Add the thick coconut milk and cook on a low flame for another 1-2 minutes, make sure not to allow the dish to boil beyond this stage by keeping the heat to low.
Turn off the heat, Add tomatoes and some more curry leaves, close the lid and let the tomatoes cook in the heat of the curry.
Serve hot with rice, idiyappam or appams.