Marinate chicken in a mixture of plain yogurt, turmeric, garlic powder, garam masala, and lemon juice for an hour or up to a day ahead.
Preheat oven to 400 degrees F.
Bake marinated chicken for about 15 minutes. It will be just barely cooked through and the exterior should brown a bit. They will look bright yellow-orange.
Heat the butter in a large heavy pot (I used a Dutch oven) and add the thinly sliced onion. I took a long time with this—basically melted the onion and got it to a nice nut brown color. Now add the ground spices and keep cooking another 5-10 minutes until everything is super fragrant.
Add the ginger, garlic, and chili and keep cooking another 5 minutes. Add fresh tomatoes, and the can of whole tomatoes with the juice. Add the stock and simmer for a while until the tomatoes are soft.
Use an immersion blender to puree tomatoes and thicken the sauce.
Add the chicken and simmer for 5 minutes. Add the cream and reduce heat to lowest setting and simmer for another 5 minutes. Serve with rice or naan.