In a large bowl, combine the yogurt, lemon juice, cumin, paprika, turmeric, and salt. Add the chicken pieces and stir to coat. Cover and refrigerate for at least 30 minutes or up to 8 hours for best flavor.
Heat 1 tablespoon olive oil in a large skillet over medium-high heat. Add the marinated chicken and cook for 4 to 5 minutes, turning occasionally, until the chicken is browned with charred spots. It doesn't need to be fully cooked through. Transfer to a plate.
In a large deep skillet or pot, heat the butter and olive oil over medium heat. Add the diced onion and cook for 5 to 6 minutes, stirring occasionally, until soft and golden.
Add the garlic and ginger and cook for 1 minute. Stir in the garam masala, cumin, paprika, and chili powder and toast for 30 seconds until very fragrant.
Pour in the crushed tomatoes. Stir well and let the sauce simmer for 10 minutes, stirring occasionally, until thickened.
Stir in the heavy cream and sugar. Add the seared chicken pieces and any juices from the plate. Simmer gently for 10 to 12 minutes until the chicken is cooked through and the sauce is rich and creamy. Season with salt to taste.
Garnish with fresh cilantro and serve over steamed basmati rice.