Heat the vegetable oil in a large pot over medium heat. Add the diced onions and sauté until transparent and lightly golden, about 5-7 minutes.
Introduce the minced garlic and grated ginger to the pot, stirring for 1-2 minutes until fragrant.
Add the Madras curry powder, turmeric, cumin, coriander, and chili powder. Stir to coat the onions and toast the spices for about 1 minute.
Add the beef cubes to the pot, browning them on all sides, which should take about 5-6 minutes.
Pour in the canned chopped tomatoes, stirring well to combine. Allow the mixture to simmer for about 10 minutes, so the tomatoes break down and meld into the sauce.
Next, add the coconut milk and slit green chilies. Stir thoroughly and bring the pot to a gentle simmer.
Season with salt to taste, cover the pot, and let it cook for 1.5 to 2 hours on low heat, stirring occasionally until the beef is tender and flavorful.
Adjust the seasoning if needed and let it sit for a few minutes before serving.
Notes
Serve garnished with fresh coriander and accompanied by basmati rice or naan.