Heat oil in a heavy-bottomed frying pan over medium heat. Add onions and 1/2 tsp salt and saute for 7 minutes, until softened and translucent. Add minced ginger and garlic, chiles, and curry leaves and cook for another 3 minutes.
Stir in turmeric, chili powder, coriander, and pepper and saute for 2 minutes. Increase heat to high. Add tomatoes, mix well, and cook for 2 minutes. Add beef and the remaining 1 tsp salt and stir for 3 minutes, until beef is well coated.
Pour in 1 1/2 cups water and bring to a boil, then reduce heat to medium-low. Cover and simmer for 30 minutes, or until beef is tender.
Pour in coconut milk and bring to a boil. Reduce heat and simmer for 2-3 minutes. Remove from heat.
Sprinkle garam masala and scatter curry leaves on top and serve with chapatis, parathas and steamed rice.