-
Mince and mash half of garlic to a paste with 1/4 teaspoon salt, then stir together with spices.
-
Heat oil in a 12-inch heavy nonstick skillet over medium-high heat until it shimmers, then cook onions, chiles, ginger, curry leaves, and remaining garlic, stirring occasionally, until lightly browned, about 5 minutes. Stir in spice mixture and cook over medium-low heat, stirring occasionally, 5 minutes.
-
Meanwhile, spoon off thick cream from coconut milk (about 1/2 cup) and reserve separately from remaining coconut milk.
-
Push onion mixture to edge of skillet and put fish in center, then pile onion mixture on top of fish. Add thin coconut milk and simmer, covered, shaking skillet occasionally, until fish is just cooked through, 8 to 10 minutes. Transfer to a platter and keep warm, covered.
-
Add thick coconut cream and tomato to skillet and simmer until tomato is slightly softened, about 1 minute. Season sauce with salt and spoon over fish.