Heat oil or ghee in a deep pot over medium heat.
Add sliced onions and cook until golden brown.
Stir in ginger garlic paste and cook for about 1 minute until fragrant.
Add chopped tomatoes and cook until soft and blended into the base.
Mix in turmeric, red chili powder, coriander powder, cumin powder, and salt.
Add the meat pieces and stir well to coat them with the spices.
Cook the meat for about 5 minutes to seal the flavors.
Pour in water or broth and bring the curry to a gentle boil.
Reduce heat to low, cover, and let it simmer slowly for about 1–1.5 hours until the meat becomes tender.
Sprinkle garam masala and stir gently before serving.
Garnish with chopped cilantro and serve hot.