In a large mixing bowl, place the cubed chicken breast and season it with garam masala, cayenne pepper, turmeric, paprika, salt, minced garlic, and freshly grated ginger. Toss everything until the chicken is well coated. Cover and let it marinate for at least 10 minutes. I find that letting the chicken sit with these spices really deepens the flavor.
While the chicken marinates, heat the butter and olive oil in a large pan over medium heat. Add diced red onion and cook until translucent, stirring occasionally. Toss in the cashews and cook for another 2–3 minutes, allowing them to become golden and aromatic. Pour in the tomato sauce, then season with salt, ground black pepper, and garam masala. Let this mixture cook for a few minutes, just until small bubbles start to form at the edges. Remove from heat and blend until smooth and thick. Set the sauce aside for later use.
In the same pan, add a tablespoon of olive oil over medium-high heat. Working in batches so you don't overcrowd the pan, add the marinated chicken from Step 1. Cook pieces until golden brown on all sides. This helps lock in the flavors and keeps the chicken juicy.
Once the chicken is cooked, pour the smooth tomato and cashew sauce from Step 2 over the chicken in the pan. Stir to coat all the pieces, then reduce the heat to low and let it simmer for about 5 minutes. Add the heavy cream, mix well, and turn off the heat. I like to add the cream at the very end to keep the sauce extra rich and silky.
Serve the creamy chicken curry immediately, ideally over steamed white rice. Garnish with freshly chopped cilantro for a burst of fresh flavor and color.