In a large bowl, combine yoghurt, lemon juice, ginger-garlic paste, cumin, garam masala, chilli powder, turmeric, salt, and oil. Mix well, then add the chicken pieces, coating them thoroughly. Cover and refrigerate for at least 2 hours, ideally overnight for deeper flavour.
Preheat the oven to 220°C (200°C fan). Arrange the marinated chicken on a lined baking tray and bake for 15–18 minutes until lightly charred at the edges. Alternatively, grill or pan-fry for a smoky taste. Set aside while you prepare the sauce.
In a large saucepan, heat butter and oil over medium heat. Add the finely chopped onions and cook until golden brown. Stir in the garlic and ginger, cooking until fragrant and softened. This forms the aromatic base of the dish.
Add the chopped tomatoes to the pan. Cook for 10–12 minutes until they break down and release their natural sweetness. Stir occasionally to prevent sticking. Once soft, use a hand blender to puree the sauce until smooth.
Return the sauce to low heat. Stir in coriander, cumin, garam masala, chilli powder, and sugar. Simmer gently for 5 minutes, allowing the spices to bloom and the sauce to deepen in colour.
Add the cooked chicken pieces, along with any juices from the tray, into the sauce. Stir to coat the chicken evenly. Simmer for 10 minutes to allow the flavours to meld together.
Stir in the double cream and an additional knob of butter for a silky finish. Cook gently for another 5 minutes, avoiding a rapid boil to keep the sauce smooth and rich.
Crumble kasuri methi between your palms and sprinkle into the sauce. Taste and adjust seasoning with salt or a touch more sugar if needed. The sauce should be creamy, slightly tangy, and aromatic.
Turn off the heat and let the curry rest for 5 minutes before serving. This allows the sauce to thicken naturally and the spices to settle harmoniously.
Serve hot with basmati rice or naan. Garnish with a drizzle of cream and fresh coriander leaves. For a traditional touch, add a small pat of butter on top just before serving.