Combine yogurt, lemon juice, garam masala, turmeric, chili powder, and salt in a bowl. Add chicken pieces, coat well, and let them marinate for at least 30 minutes. This step is key for tenderness and flavor.
Heat oil in a skillet and sear the marinated chicken on high heat for 2–3 minutes per side until lightly browned. Remove from the pan and set aside; the chicken will finish cooking in the sauce.
In the same skillet, melt butter and add cumin seeds. Sauté onions until soft and golden. Stir in ginger-garlic paste and cook until fragrant. Add pureed tomatoes, ground coriander, ground cumin, chili powder, and sugar. Simmer until the mixture thickens and turns deep red.
Once the tomato mixture cools slightly, transfer it to a blender and blend until completely smooth. This step gives the butter chicken its signature velvety texture.
Return the sauce to the skillet. Add heavy cream, adjust seasoning with salt, and stir in the seared chicken. Let it simmer for 10 minutes so the chicken absorbs the flavors.
Finish with fresh cilantro and an extra drizzle of cream if desired. Serve hot with naan, roti, or basmati rice.