Heat a large pot over medium heat and add oil.
Sauté the onions until translucent.
Add garlic and ginger, cooking until fragrant.
Stir in the beef cubes, browning on all sides.
Incorporate the chopped tomatoes and cook for 5 minutes.
Add curry powder, turmeric, cumin, and coriander; mix well.
Pour in the coconut milk and stir to combine.
Season with salt and pepper, then bring to a simmer.
Cover and cook on low heat for 1-1.5 hours, until beef is tender.
Garnish with fresh cilantro before serving.