
In a bowl, combine the chicken pieces with yogurt, ginger-garlic paste, lemon juice, turmeric powder, chili powder, garam masala, and salt. Mix well and let it marinate for at least 30 minutes (or up to 4 hours in the refrigerator).
Heat oil or ghee in a large pan or pot over medium heat. Add chopped onions and sauté until golden brown. Add ginger-garlic paste and sauté for another minute.
Add tomato puree, cashew nuts, sugar, and kasuri methi (dried fenugreek leaves). Cook for 10-15 minutes, stirring occasionally, until the tomatoes are cooked down and the sauce thickens.
Add the marinated chicken to the sauce. Stir well to coat the chicken with the sauce. Cover and simmer for 20-25 minutes, or until the chicken is cooked through.
Stir in butter and cream. Simmer for another 5 minutes, allowing the sauce to become rich and creamy. Adjust salt and spices to taste.
Garnish with fresh coriander leaves. Serve hot with naan bread, roti, or rice.
Optional: For a smoky flavor, you can give the butter chicken a 'dhungar' treatment. Place a small steel bowl in the center of the pan, put a burning piece of charcoal in it, pour a teaspoon of ghee over the charcoal, and immediately cover the pan with a lid. Let the smoke infuse for 2-3 minutes before removing the bowl.