Marinate the Chicken: In a bowl, combine chicken with yogurt (or coconut milk), lemon juice, and spices. Let it marinate for at least 15–30 minutes (or overnight for deeper flavor).
Cook the Chicken: Heat 1 tbsp oil in a large skillet over medium-high heat. Add marinated chicken and cook until lightly browned and almost cooked through, about 5–7 minutes. Remove chicken and set aside.
Make the Sauce: In the same skillet, melt butter. Add onions and sauté until soft and golden, about 5 minutes. Stir in garlic, ginger, garam masala, cumin, paprika, and chili powder; cook 30 seconds until fragrant.
Add Tomato Base: Pour in tomato sauce and tomato paste. Simmer 5–10 minutes, stirring occasionally, until thickened slightly.
Finish with Coconut Milk: Stir in coconut milk and bring to a gentle simmer. Add the cooked chicken back into the pan and simmer another 10 minutes, or until chicken is tender and sauce is creamy.
Taste and Adjust: Add salt to taste, and if desired, a pinch of sugar to balance acidity.
Serve: Garnish with chopped cilantro and serve hot with basmati rice or naan.