Cut the chicken into bite-sized pieces. Chop the onions, mince the garlic, and grate the ginger.
Heat 1 tbsp oil in a large pot or skillet over medium heat.
Add the chicken pieces and cook for 4-5 minutes on each side until lightly browned. Remove the chicken from the pan and set aside.
In the same pan, add the remaining 1 tbsp oil. Add the chopped onions and sauté for 3-4 minutes until soft and golden.
Add the minced garlic and grated ginger. Cook for 1-2 minutes until fragrant.
Add turmeric, cumin, coriander, garam masala, chili powder (if using), and salt. Stir well, letting the spices coat the onions, garlic, and ginger.
Add the chopped tomatoes and cook for 3-5 minutes, stirring until the tomatoes soften.
Pour in the coconut milk and chicken broth (or water). Stir well and bring to a gentle simmer.
Return the cooked chicken to the pot. Stir so the chicken is coated in the sauce.
Cover and let it simmer on low heat for 20 minutes, stirring occasionally, until the chicken is cooked through and tender.
If you’re adding vegetables (like peas, carrots, or spinach), add them in the last 10 minutes of cooking to avoid overcooking.
Taste and adjust the seasoning, adding more salt if needed.
Garnish with fresh cilantro and serve hot with rice, naan, or roti.