1Mix yogurt, minced ginger, minced garlic, garam masala, paprika, cayenne, and salt in a bowl. Add the chicken chunks and stir to coat evenly. Let marinate for at least 15 minutes (or up to 4 hours in the fridge).
2Heat a grill pan or cast iron skillet over medium-high heat and brush lightly with oil. Working in batches if needed, grill the chicken pieces for 2–3 minutes per side until charred and cooked through (internal temp 165°F). Set aside.
3In the same skillet or another large skillet, heat 2 tbsp oil over medium heat. Add sliced onion and cook until golden and soft, about 5 minutes.
4Stir in tomato paste and cook for 1 minute until it darkens slightly. Add crushed tomatoes, cumin, coriander, and a pinch of salt. Simmer for 5 minutes to meld flavors.
5Stir in cream and coconut milk (if using). Return the grilled chicken to the skillet and simmer gently for 5–8 minutes until the sauce thickens slightly and the chicken is heated through.
6Taste and adjust seasoning with salt, cayenne, or honey to balance heat and sweetness. Finish with fresh lime juice and top with cilantro.