Heat the vegetable oil in a large skillet or pot over medium heat.
Add the finely chopped onion to the skillet and sauté until softened and golden brown, about 5-7 minutes. Add the minced garlic and ginger, and sauté for another 1-2 minutes until fragrant.
Add the bite-sized chicken pieces to the skillet. Cook until the chicken is browned on all sides, about 5-7 minutes.
Stir in the curry powder, ground cumin, ground coriander, turmeric, and cayenne pepper (if using). Cook for 1-2 minutes to toast the spices and coat the chicken evenly.
Add the diced tomatoes, coconut milk, chicken broth, and tomato paste to the skillet. Stir to combine.
Bring the mixture to a simmer. Reduce the heat to low and let it cook for 15-20 minutes, or until the chicken is cooked through and the sauce has thickened. Season with salt and pepper to taste.
Garnish the chicken curry with fresh cilantro and serve hot over cooked rice.