Heat vegetable oil in a large pot over medium heat.
Add chopped onion and cook until soft and lightly golden.
Stir in garlic and grated ginger and cook for 1 minute until fragrant.
Add turmeric, cumin, coriander, chili powder, paprika, salt, and black pepper.
Stir the spices with the onions for about 30 seconds to release their aroma.
Add chicken pieces and cook until lightly browned on the outside.
Pour in crushed tomatoes and chicken broth and stir well.
Bring the mixture to a gentle simmer.
Cover and cook for about 25 minutes until the chicken becomes tender.
Stir in coconut milk and garam masala and simmer for another 5 minutes.
Taste and adjust seasoning if needed.
Garnish with chopped cilantro before serving.