In a large bowl, combine the chicken pieces with salt, black pepper, paprika, garlic powder, and onion powder. Toss until the chicken is evenly coated with the spices.
In a large skillet, heat the olive oil over medium-high heat. Add the seasoned chicken and cook for about 5-7 minutes, or until browned on all sides. Remove the chicken from the skillet and set aside.
In the same skillet, reduce the heat to medium and add the butter. Once melted, add the chopped onion and sauté until translucent, about 5 minutes.
Stir in the minced garlic and ginger, cooking for an additional 1-2 minutes until fragrant.
Pour in the tomato sauce, heavy cream, garam masala, and sugar. Stir well to combine and bring the mixture to a simmer.
Return the browned chicken to the skillet, cover, and let it simmer for 15-20 minutes, stirring occasionally, until the chicken is cooked through and the sauce has thickened.
Taste and adjust seasoning if necessary. Serve hot, garnished with fresh cilantro.