In a shallow dish, combine the flour, salt, and cayenne with a fork. Place the chicken pieces in the flour mixture and toss with the fork to coat.
Place a large Dutch oven or heavy-bottomed pot over medium-low heat.
Add the oil to the pot. Add the chicken and saute until golden brown, about 4 minutes. Remove the chicken from the pan and transfer to a plate.
Add the shallot and bell pepper and cook until fragrant and translucent, about 5 minutes, stirring often. Add the garlic and ginger and stir to heat until fragrant, about 30 seconds.
Add the chicken stock (and coconut milk, if using) in a steady stream, while stirring constantly to scrape up any brown bits in the bottom of the pan.
Add the chicken back to a pot and bring the mixture to a simmer over medium heat. Reduce heat to low and simmer for about 30 minutes or until the liquid has reduced by a third.
Stir in the raisins, tomato, and mango, and simmer on low for another 10 minutes.
Remove the pot from heat and stir in the lime juice, cilantro, and basil. Serve hot over rice with naan bread on the side.
Leftovers will keep in the fridge up to 3 days and taste even better!