Add the butter to the skillet (you may need to add some olive oil, too, if the skillet seems dry). When the butter melts, add the onion. Use a wooden spoon or spatula to scrape up the the flavorful bits of chicken that have stuck to the bottom of the pan. Then lower the heat, cover the skillet, and let the onion sweat until soft -- about 5 minutes.
Add the tomato sauce to the skillet, and then stir in the garlic, ginger, turmeric, cumin, paprika, garam masala, and cayenne. Raise the heat to "medium," and, while stirring, bring the mixture to a boil. Then lower the heat, and let the sauce simmer, uncovered, until it thickens -- about 15 minutes.
Stir in the heavy cream. Then stir in the chicken and all of their juices. Simmer, uncovered, until the chicken is done and hot throughout -- about 5 minutes. Serve while hot, atop a bed of Basmati rice, and beneath a shower of minced cilantro. Naan is a useful flat bread for soaking up the delicious tomato-cream sauce.