Combine cubed chicken with the yogurt, lemon juice, ginger-garlic paste, kasuri methi, and marinade spices. Mix well and let it sit in the refrigerator for at least 1 hour, preferably 8-48 hours for maximum tenderness.
Heat oil/ghee in a large pan or Dutch oven. Add diced onions and cook on medium-high heat until they become deep golden brown and soft, which is crucial for building the flavor base.
Add ginger-garlic paste and the curry spices (coriander, cumin, garam masala, red chili powder) to the onions and fry for about 1 minute until fragrant. Pour in the tomato puree, stir well, and simmer until the sauce thickens and the oil separates from the edges.
While the sauce simmers, sear the marinated chicken in a separate smoking-hot cast-iron skillet (or grill/broil) in batches for 3–4 minutes per side until charred on the outside. They do not need to be fully cooked inside yet.
Add 1 cup of water or chicken stock to the tomato spice mixture in the main pot. Cover and let it simmer on low heat for 10–12 minutes to blend flavors, adjusting with salt and a pinch of sugar to balance acidity.
Add the charred chicken pieces and any resting juices back into the sauce. Cover and cook on low heat for 5–10 minutes, or until the chicken is cooked through and tender.
Stir in the heavy cream and 1 tablespoon of crushed kasuri methi. Simmer for another 2–3 minutes until the sauce is creamy and aromatic.
Garnish generously with fresh coriander (cilantro) and serve hot with naan or rice.