In a large bowl, combine the chicken pieces, curry powder, salt, and black pepper. Mix well to coat the chicken evenly. Let it marinate for at least 30 minutes for better flavor.
Heat the vegetable oil in a large skillet or Dutch oven over medium heat. Add the marinated chicken and cook until browned on all sides, about 5-7 minutes.
Add the chopped onion, garlic, ginger, bell pepper, and carrots to the skillet. Sauté for another 5 minutes until the vegetables start to soften.
Pour in the coconut milk and chicken broth, stirring to combine. Bring the mixture to a simmer.
Reduce the heat to low, cover, and let it cook for 30-40 minutes, stirring occasionally, until the chicken is tender and the sauce has thickened.
Taste and adjust seasoning if necessary. Serve hot, garnished with sliced green onions and fresh cilantro if desired.