In a medium bowl, whisk together yogurt, garam masala, and salt. Toss with sliced chicken thighs until fully coated. Cover and marinate for 30 minutes or overnight.
In a large pan, heat vegetable oil over medium-high heat until shimmering hot. Add chicken in batches and sear 2-3 minutes on each side. Set to side once done.
Lower the same pan to medium heat, add a touch of more oil along with diced onions, diced ginger, sliced garlic, and season to taste with salt and pepper. Mix and stir, sauteing for 2-3 minutes or until softened.
Add in spices (turmeric powder optional) and stir together until spices have toasted for 1-2 minutes. After toasting, add in crushed tomatoes and water then stir until incorporated over medium heat. Let simmer for 5-8 minutes until the sauce has reduced.
Once reduced, add chicken back to the pan mixing into the sauce and let simmer for 3-5 minutes.
Add in heavy cream stirring until thickened and incorporated. Bring up to a light simmer before reducing heat to low and simmering for no longer than 3-4 minutes. Stir often.
Turn off the heat and continuously stir in unsalted butter until melted. Season to taste with salt.
Plate in a shallow bowl with steam rice and topped with cilantro.
