Make this beloved Indian restaurant favorite at home with tender marinated chicken in a rich, creamy tomato sauce. Takes about 2 hours including marinating time, but most of it is hands-off. Perfect for intermediate cooks who want to master a classic curry that tastes better than takeout.
In a large bowl, combine yogurt, lemon juice, garlic, ginger, garam masala, cumin, paprika, and salt. Mix well until smooth and all spices are fully incorporated.
Cut the chicken breasts into bite-sized chunks, about 1.5 inches each. Add to the marinade and toss until every piece is well coated. Cover the bowl with plastic wrap and refrigerate for at least 1 hour, or up to 8 hours for deeper flavor.
While the chicken marinates, finely dice the onion, mince the garlic and ginger, and open the can of tomato puree. Measure out all your spices and have them ready near the stove. This makes cooking much smoother.
Heat oil in a large skillet or grill pan over medium-high heat. Remove chicken from marinade (shake off excess) and cook in batches for 3-4 minutes per side until golden brown with some charred spots. The chicken doesn't need to be fully cooked through yet. Set aside on a plate.
In a large heavy-bottomed pot or Dutch oven, melt the butter over medium heat. Add the diced onion and cook for 6-8 minutes, stirring occasionally, until softened and starting to turn golden at the edges.
Add the minced garlic and ginger to the onions and cook for 1-2 minutes until fragrant. Then add garam masala, cumin, coriander, turmeric, cayenne pepper, and salt. Stir constantly for about 1 minute to toast the spices and release their oils.
Pour in the tomato puree and stir well to combine with the spiced onion mixture. Bring to a gentle simmer, then reduce heat to low and cook for 15 minutes, stirring occasionally. The sauce will thicken and deepen in color.
Carefully transfer the sauce to a blender (or use an immersion blender directly in the pot) and blend until completely smooth and creamy. If using a countertop blender, work in batches and hold the lid down with a towel to prevent hot splatter. Return sauce to the pot.
Stir in the heavy cream and mix until fully incorporated. The sauce should be a beautiful orange-red color and silky smooth. Taste and adjust salt if needed. Bring back to a gentle simmer over medium-low heat.
Add the cooked chicken pieces to the sauce and stir gently to coat. Simmer for 10-15 minutes, stirring occasionally, until the chicken is fully cooked through and has absorbed some of the sauce flavors. The sauce should be thick enough to coat a spoon.
Remove from heat and stir in chopped fresh cilantro. Serve hot over basmati rice or with warm naan bread. Garnish with extra cilantro and a drizzle of cream if desired.