Heat oil in a large pot or Dutch oven over medium-high heat. Sear beef in batches until browned. Set aside.
- In the same pot, add more oil if needed and sauté the onion until soft and golden, about 5–7 minutes.
- Add garlic and ginger. Cook for 1 minute until fragrant.
- Stir in curry powder, turmeric, cumin, coriander, and chili powder. Toast for 1–2 minutes to release aromas.
- Add tomato paste or crushed tomatoes. Cook for 2–3 minutes, stirring to combine.
- Return seared beef to the pot. Stir to coat in the spices and tomato mixture.
- Pour in coconut milk and beef broth. Stir well and bring to a gentle simmer.
- Cover and simmer on low heat for 1.5 to 2 hours, stirring occasionally, until beef is tender and sauce is thickened.
- Uncover during the last 15–20 minutes if you want a thicker curry.
- Season with salt and pepper to taste. Garnish with fresh cilantro or parsley and serve hot with rice or naan.