In a large bowl, combine chicken pieces with salt, pepper, turmeric, cumin, garam masala, and paprika. Mix well to coat the chicken evenly. Let marinate for at least 30 minutes (or up to 2 hours in the refrigerator for more flavor).
Heat vegetable oil in a large skillet over medium-high heat. Add the marinated chicken in batches, cooking until browned on all sides, about 5-7 minutes. Remove chicken from the skillet and set aside.
In the same skillet, add chopped onion and sauté until softened and golden, about 5 minutes. Stir in minced garlic and ginger, cooking for an additional 1-2 minutes until fragrant.
Pour in the tomato sauce and bring to a simmer. Cook for about 5 minutes, allowing the flavors to meld.
Reduce heat to low and stir in the heavy cream, butter, sugar, and lemon juice. Return the chicken to the skillet and simmer for another 10-15 minutes, until the chicken is cooked through and the sauce thickens slightly.
Taste and adjust seasoning if necessary. Serve hot, garnished with fresh cilantro, alongside basmati rice or naan.