Heat oil in a wide saucepan, add cumin seeds, fenugreek seeds followed by onion. Fry till light golden and then add tomatoes.
Once the tomatoes are soft, add ginger and garlic paste. Fry for 2 minutes.
Now add green chilies, turmeric, and coriander powder. Cook for a minute and then add yogurt, garam masala powder, lemon juice, pepper powder, and salt. Cook on low heat till the spices are well cooked and oil starts to separate. Add 1 cup of water and mix well and again bring to a slow boil.
Now slowly add fish pieces and arrange side by side, not overlapping each other. Cover fish pieces with masala even on top and cook on medium-low heat covered for 5 to 7 minutes or till the fish is just cooked.
Avoid using the ladle for stirring the fish in the gravy. Just stir gently by rotating the saucepan.
Garnish with coriander leaves and more lemon juice.