Combine the yogurt, lemon juice, all marinade spices, salt, and oil in a bowl large enough to hold the chicken.
Add the chicken pieces and turn to coat thoroughly. Cover and refrigerate for at least 2 hours. Overnight is better — the flavor penetration is noticeably different.
Sear the Chicken
Remove the chicken from the marinade and let any excess drip off — you don't want large clumps of yogurt in the pan, which will steam rather than sear.
Heat a tablespoon of oil in a heavy skillet over medium-high heat until it shimmers.
Cook the chicken in batches — don't crowd the pan — for 3–4 minutes per side, until you get some color and char on the surface. The chicken will not be cooked through at this point. That's intentional. Set aside.
Build the Onion Base
In the same pan (or a Dutch oven), heat the oil and butter over medium heat. Add the diced onion and cook, stirring occasionally, until deeply golden and beginning to soften into the pan — this takes 12–15 minutes.
Don't rush it. A pale onion base produces a pale, underdeveloped sauce.
Add Garlic and Ginger
Add the minced garlic and grated ginger to the onions. Cook, stirring constantly, for 2 minutes. You'll smell when it's ready — the sharpness softens, and the aroma deepens.
Bloom the Spices
Add all the ground spices directly to the onion, garlic, and ginger mixture. Stir continuously for 60–90 seconds. The spices will darken slightly and become very fragrant. This is the step most home cooks skip or rush — and it's the step Ricco would tell you matters most. The heat and fat activate flavor compounds that water can't reach. Don't add liquid yet.
Build the Tomato Base
Pour in the crushed tomatoes, salt, and sugar. Stir to combine, scraping up anything from the bottom of the pan.
Bring to a simmer, then reduce heat to medium-low and cook uncovered for 12–15 minutes, stirring occasionally, until the sauce has darkened, thickened, and lost its raw tomato edge. It should reduce noticeably. If it's still bright red and thin after 15 minutes, keep cooking.
Add the Cream
Reduce heat to low. Pour in the heavy cream and stir to combine. The sauce will lighten in color and smooth out considerably. Let it simmer gently for 5 minutes — not a rolling boil, which can break the cream.
Finish the Chicken in the Sauce
Add the seared chicken pieces to the sauce. Simmer on low for 10–12 minutes, until the chicken is cooked through and has absorbed some of the sauce. Test a piece — it should be tender, not springy. Taste the sauce and adjust salt or cayenne.
Serve
Serve over basmati rice or with naan. Finish with fresh cilantro if you like it.