Add the Greek yogurt, lemon zest, lemon juice, grated onion, garam masala, garlic, ginger, and salt to a bowl and whisk the ingredients together until combined.
Place the chicken thighs into a large gallon sized bag or a glass container.
Pour the marinade over the chicken thighs and make sure all of the chicken thighs are slathered in the yogurt marinade.
Refrigerate chicken for 2 hours.
Remove the chicken from the fridge and shake the marinade off of each piece of chicken and set aside. Discard the excess Greek yogurt marinade.
Heat a large skillet with sides (or a Dutch oven) over medium/high heat. Add 1 tablespoon of ghee to the pan.
When the ghee is melted and fragrant, add the chicken thighs to the pan. Sear the chicken on each side for 3-4 minutes to brown. Set the chicken aside.
Add the rest of the ghee to the pan. When the ghee has melted, scrape any brown bits from the bottom of the pan.
Add the onion to the pan and sauté for 2-3 minutes.
Next, add the garlic and ginger to the onions and toss. Sauté for an additional 2-3 minutes and until fragrant.
Add tomato sauce, cumin, coriander, chili powder, and paprika to the pan and stir to combine. Bring the mixture to a gentle simmer over medium heat.
Turn heat to low and slowly whisk in the heavy cream.
Once the heavy cream has been added to the sauce, transfer the sauce to a high speed blender and blend until smooth.
Add the sauce back to the pan and heat over medium heat.
Cut the chicken thighs into bite size pieces and add them to the sauce. Fold the chicken into the sauce until coated.
Turn the heat to medium/high heat and bring the sauce to a gentle boil.
Turn heat to low and let simmer for 4-5 minutes to finish cooking the chicken.
If the sauce needs to be thinned out add 1-2 more tablespoons of heavy cream to the sauce.
Remove from heat and serve over rice with a garnish of chopped cilantro.