In a large bowl, whisk together the yogurt, lime juice, 1 tablespoon of ginger garlic paste, 1 tablespoon of garam masala, and 1 tablespoon of vegetable oil.
Add the chicken pieces to the marinade, stirring to coat completely. Cover and refrigerate for at least 1 hour, or up to overnight.
Heat a large, heavy-bottomed skillet or cast iron pan over medium-high heat. Add the marinated chicken pieces in a single layer, shaking off excess marinade. Cook for 5 to 6 minutes, turning occasionally, until nicely charred and cooked through. Transfer the chicken to a plate and set aside.
In the same skillet, add the remaining 1 tablespoon of vegetable oil over medium heat. Add the star anise, cardamom pods, and whole black peppercorns. Toast for 1 minute until fragrant.
Add the chopped onion and cook for 6 to 8 minutes until softened and translucent. Stir in the remaining 1 tablespoon of ginger garlic paste and cook for an additional 1 minute.
Stir in the tomato puree and the remaining 1 tablespoon of garam masala. Bring the mixture to a simmer, reduce the heat to low, and cook for 15 minutes, allowing the sauce to thicken.
Return the cooked chicken and any accumulated juices to the skillet. Stir in the heavy whipping cream and kasoori methi. Simmer gently for 5 minutes until heated through.
Remove the star anise and cardamom pods if desired. Garnish with chopped cilantro and serve hot over steamed white rice with naan bread.