Heat oil in a large pot over medium heat. Add onions and cook until golden.
Stir in garlic and ginger, cooking until fragrant.
Add curry powder, cumin, coriander, turmeric, and chili powder. Stir for about 30 seconds to release the flavors.
Add chicken pieces and cook until lightly browned on all sides.
Pour in diced tomatoes and coconut milk. Stir well.
Season with salt and pepper, then reduce heat and let it simmer for 20–25 minutes until chicken is cooked through and sauce thickens.
Garnish with fresh cilantro and serve with rice or naan.