Prepare the Fish: Rinse the fish fillets and pat them dry with a paper towel. Cut them into 2-inch chunks and set aside.
Sauté Aromatics: Heat the vegetable oil in a large pan over medium heat. Add the chopped onions and sauté until golden brown (about 5 minutes). Stir in the minced garlic, ginger, and green chilies. Cook for an additional 2 minutes until fragrant.
Add Spices: Lower the heat and add the curry powder, turmeric, cumin, coriander, and paprika. Stir for 1-2 minutes, allowing the spices to bloom in the oil. Be careful not to burn them.
Create the Sauce: Add the chopped tomatoes to the pan and cook for about 3 minutes, breaking them down into a thick paste. Pour in the coconut milk and stir until well combined. Let the sauce simmer for 5 minutes to allow the flavors to meld together.
Simmer the Fish: Gently place the fish chunks into the sauce, making sure they are submerged. Cover and simmer for 10-12 minutes, or until the fish is cooked through and flakes easily with a fork.
Finish the Dish: Stir in the tamarind paste (or lime juice) and sprinkle the garam masala on top. Adjust seasoning with salt and pepper as needed.
Garnish with fresh cilantro and serve the dish hot with steamed rice or naan bread.