Heat oil in a large pot over medium heat.
Add chopped onion and cook until golden brown.
Stir in garlic and ginger and cook for about 1 minute.
Add chopped tomatoes and cook until soft and blended.
Mix in turmeric, curry powder, cumin, coriander, chili powder, salt, and pepper.
Add chicken and stir to coat with the spices.
Pour in coconut milk or yogurt and mix well.
Cover and simmer for 25–30 minutes until the chicken is tender and fully cooked.
Adjust the sauce consistency by adding water if needed.
Garnish with fresh cilantro and serve warm.