Rub fish with garam masala and brown on each side in hot oil in a skillet. The fish shouldn't cook through. Remove from skillet.
Saute onion and garlic in additional oil (if needed) in the skillet with the lid on, stirring occasionally, until onions are tender and slightly browned. Add pepper, tomato, and more garam masala. Cook with the lid on for a minute to "melt" the tomato.
Add the coconut milk and simmer 5 minutes, stirring often. Add the fish and simmer, covered, until cooked through, about 5 minutes longer.
Squeeze lime juice over fish and sauce. Remove the hot pepper. Serve over hot cooked rice.