Heat the vegetable oil in a large skillet or saucepan over medium heat.
Add the chopped onions and sauté until they are soft and golden, about 5-7 minutes.
Stir in the minced garlic and grated ginger, cooking for an additional 1-2 minutes until aromatic.
Add the ground cumin, ground coriander, turmeric powder, garam masala, and chili powder to the skillet. Stir and cook for 1-2 minutes, allowing the spices to toast and deepen in flavor.
Add the chicken pieces to the skillet, stirring to coat them in the spice mixture. Cook for about 5-6 minutes until the chicken is browned on all sides.
Pour in the diced tomatoes with their juices and the coconut milk. Stir to combine and bring the mixture to a simmer.
Reduce the heat to low, cover the skillet, and let the curry cook for 20-25 minutes, stirring occasionally until the chicken is cooked through and tender. Season with salt to taste.
Remove from heat and garnish with fresh cilantro. Serve hot over cooked rice or with naan bread.