Start by chopping the onions, tomatoes, garlic, and ginger. Cut the chicken into bite-sized pieces.
Heat the oil in a large pan over medium heat. Add the onions and sauté until golden brown. Stir in the garlic and ginger, cooking until fragrant.
Mix in the curry powder, cumin, coriander, turmeric, and chili powder. Toast the spices for a minute to release their aroma.
Add the chicken pieces to the pan, stirring to coat them in the spices. Cook for 5-7 minutes until the chicken is browned on all sides.
Pour in the chopped tomatoes and cook until they soften and break down. Add the coconut milk or yogurt, stirring well. Bring the mixture to a simmer and cook for 20-25 minutes, or until the chicken is cooked through and the sauce has thickened.
Season with salt and pepper, then garnish with fresh coriander leaves. Serve hot with rice, naan, or your favourite side dish.