Wash fish and marinate with all the spices except oil for 1 hour.
Deep fry fish and keep aside.
FOR THE GRAVY:
Peel tomatoes and grind them with 1/2 cup of water.
Heat oil, add whole masala,when they splutter add dry chillies and methi leaves.
Add tomatoes puree,ginger,garlic paste.green chilly paste, and tomato paste braise for 30 seconds on medium heat.
Add fried fish ,mix well and lower the heat ,cook fish in masala for 10 mins ,add onions ,lemon and garam masala powder,mix well and add 1 cup of water, and cook till gravy thick.
Garnish with coriander leaves and onion slices, serve hot with parathas or rice.