In a large bowl, whisk together the yogurt, 1 tablespoon of garam masala, cumin, and turmeric. Add the meat, stirring to coat evenly. Cover and marinate in the refrigerator for at least 30 minutes, or overnight.
Heat 1 tablespoon of ghee in a heavy-bottomed pot or Dutch oven over medium-high heat. Add the marinated pieces in batches, browning them on all sides. Remove from the pot and set aside.
Reduce heat to medium. Add the remaining 2 tablespoons of ghee to the pot. Stir in the diced onion and cook until softened, about 5 to 7 minutes.
Add the minced garlic and grated ginger, cooking for 1 minute until fragrant. Stir in the remaining 1 tablespoon of garam masala.
Pour in the tomato puree, stirring to combine. Bring the mixture to a gentle simmer, cover, and let it cook for 15 minutes to allow the flavors to meld.
Return the browned meat and any rested juices to the pot. Simmer uncovered for 10 minutes, or until cooked through.
Stir in the heavy cream and crushed kasuri methi. Let simmer for 2 to 3 minutes until heated through. Remove from heat.
Garnish with fresh chopped cilantro. Serve warm alongside basmati rice and warm naan bread.