Cut chicken thighs into 1.5-inch cubes. Combine yogurt, lemon juice, garam masala, cumin, coriander, turmeric, chili powder, salt, and oil in a bowl. Add chicken and coat thoroughly.
Cover and refrigerate for at least 1 hour, or up to 24 hours for best results. Remove from fridge 20 minutes before cooking.
Heat a cast iron skillet over high heat until smoking. Add oil and chicken in a single layer, working in batches. Cook undisturbed for 2-3 minutes until charred, then flip and cook 2-3 minutes more.
Transfer charred chicken to a plate and set aside. The chicken will finish cooking in the sauce.
In a Dutch oven, melt butter with oil over medium heat. Add onion and cook 10-12 minutes until soft and golden. Add garlic and ginger, cook 1-2 minutes until fragrant.
Add garam masala, cumin, coriander, turmeric, chili powder, and cayenne. Stir constantly for 1-2 minutes to bloom spices. Add tomato paste and cook 2-3 minutes until darkened.
Add crushed tomatoes, salt, and sugar. Bring to a boil, reduce heat, and simmer uncovered for 15-20 minutes until thickened and oil separates.
Optional: Blend sauce with an immersion blender until smooth for a restaurant-style texture. Return to low heat.
Slowly stir in heavy cream and rubbed kasuri methi. Add charred chicken with any juices and simmer 8-10 minutes until chicken is cooked through.
Taste and adjust salt. Garnish with fresh cilantro and serve with basmati rice and garlic naan.