When ready, in a large skillet over medium-high heat, add oil and 3 tablespoons of butter. Heat until sizzling.
Add marinated chicken in an even layer. (Cook in batches so you don't overcrowd the pan) Cook 3 minutes per side, or until browned. (The chicken will not be cooked through.) Transfer the chicken to a plate and tent to keep warm.
To the same skillet over medium-high heat, add the remaining 3 tablespoons of butter. Once melted, add onions and cook (stirring occasionally with a wooden spoon) until translucent (6-8 minutes). Use the spoon to scrape up any browned bits in the pan.
Add garlic, garam masala, cumin, ginger,and chili powder. Mix and cook until fragrant (about 30 seconds).
Reduce heat to medium and add the tomato sauce, heavy cream, and sugar. Bring the mixture back to a simmer and then add the chicken back into the pan. Stir to combine. Simmer for 12-15 minutes, or until thickened and the internal temperature of the chicken reaches 165°F.
Season to taste with salt and garnish with cilantro. Serve hot.