Prep the chicken. Cut the chicken into bite-size pieces, about 1.5-inch cubes.
Pat dry with paper towels so the marinade sticks well.
Make the marinade. In a bowl, mix yogurt, lemon juice, half the garlic, half the ginger, 1 teaspoon garam masala, 1 teaspoon cumin, 1 teaspoon paprika, 1/2 teaspoon turmeric, 1/2 teaspoon coriander, and a good pinch of salt. Stir until smooth.
Marinate. Add the chicken, coat well, cover, and refrigerate for at least 30 minutes. For best flavor, go 2–4 hours.
Overnight is fine too.
Sear the chicken. Heat 1–2 tablespoons oil in a large skillet over medium-high heat. Shake excess marinade off the chicken and sear in batches until lightly browned on both sides, 2–3 minutes per side. The chicken will finish cooking in the sauce; don’t overcook here.
Transfer to a plate.
Build the sauce base. In the same pan, lower the heat to medium. Add butter or ghee. Stir in onion with a pinch of salt and cook until soft and golden, about 6–8 minutes.
Add remaining garlic and ginger; cook 1–2 minutes until fragrant.
Toast the spices. Add remaining garam masala, cumin, paprika, coriander, turmeric, and cayenne if using. Stir 30–60 seconds to bloom the spices without burning. If the pan looks dry, add a splash of oil or water.
Add tomatoes. Pour in crushed tomatoes.
Simmer 5–7 minutes, stirring occasionally, until the raw tomato smell mellows and the sauce thickens slightly.
Blend for smoothness (optional but great). For a silky restaurant-style sauce, carefully blend the mixture with an immersion blender until smooth. You can also transfer to a blender, then return to the pan.
Finish the sauce. Stir in cream. Simmer 2–3 minutes until the color turns a deep orange and the sauce becomes glossy.
Taste and add salt and pepper as needed.
Combine and simmer. Add the seared chicken and any juices back to the pan. Simmer gently for 6–8 minutes, until the chicken is cooked through and tender. If the sauce gets too thick, add a splash of water.
Garnish and serve. Sprinkle with chopped cilantro.
Serve hot over steamed basmati rice, cauliflower rice, or warm gluten-free naan. Add a squeeze of lemon if you like brightness.