In a small bowl, combine the garam masala, cumin, turmeric, smoked paprika, salt, cayenne, and some freshly cracked pepper (about 10 cranks of a pepper mill). Sprinkle the spice mix over both sides of the chicken thighs, coating them liberally.
Heat the cooking oil in a large skillet over medium-high heat. Once hot, add the seasoned chicken and cook for about 3 minutes on each side, or until well browned (the chicken does not need to be cooked through). Transfer the seared chicken to the slow cooker.
Add the diced onion to the skillet and continue to cook until the onions are soft and slightly browned on the edges. Remove the skillet from the heat. Add the onions to the slow cooker, then add 1/4 cup of water to the skillet and stir to dissolve the browned bits from the bottom of the skillet. Pour the water into the slow cooker.
Add the minced garlic, grated ginger, and tomato sauce to the slow cooker with the chicken and onion. Briefly stir, then place the lid on top, and turn the slow cooker on. Cook on high for 3 hours or low for 6 hours.
After 3 hours on high or 6 hours on low, the chicken should be fall-apart tender. Turn the slow cooker off, then add the heavy cream. Stir gently to combine the cream with the tomato sauce. Taste the sauce and add salt if needed.
To serve, spoon the chicken and tomato sauce over cooked rice and top with fresh cilantro.
The flavor of this dish depends greatly on the quality and freshness of your garam masala. If using a lower quality or older spice blend, you may want to add more spice to achieve the bold flavors.