Heat the ghee in a large skillet or heavy-bottomed pot over medium-high heat.
Add the finely diced yellow onion and saute until softened and deeply golden brown, about 5 to 7 minutes.
Stir in the minced garlic and fresh ginger, cooking for 1 minute until fragrant.
Add the chicken pieces to the skillet and cook until browned on all sides, about 5 to 7 minutes.
Stir in the tomato paste, garam masala, ground coriander, ground cumin, ground turmeric, cayenne pepper, and salt. Cook for 1 to 2 minutes to toast the spices and coat the chicken.
Add the chopped spinach in large handfuls, stirring frequently until the leaves are completely wilted. If using a pureed spinach base, stir the puree directly into the pot.
Reduce the heat to low, cover, and simmer for 10 to 15 minutes to allow the chicken to cook through and the flavors to meld.
Stir in the heavy cream and simmer uncovered for 2 more minutes. Remove from heat and serve hot with basmati rice and naan.