In a large bowl, combine the chicken pieces with salt, pepper, turmeric, cumin, and garam masala. Mix well to coat the chicken evenly. Let it marinate for at least 30 minutes, or up to 2 hours in the refrigerator for deeper flavor.
In a large skillet or saucepan, heat the vegetable oil over medium heat. Add the chopped onion and sauté until soft and translucent, about 5-7 minutes.
Stir in the minced garlic and ginger, cooking for an additional 1-2 minutes until fragrant.
Add the marinated chicken to the skillet and cook until browned on all sides, about 5-7 minutes.
Pour in the tomato sauce and stir to combine. Bring to a simmer, then reduce the heat to low and cover. Let it cook for 15-20 minutes, stirring occasionally.
Stir in the heavy cream, sugar, and butter. Cook for another 5 minutes until the sauce is heated through and slightly thickened.
Taste and adjust seasoning if necessary. Garnish with fresh cilantro before serving.
Serve hot over cooked basmati rice or with naan.