Rub the chicken pieces with lime or lemon halves, then rinse and pat dry. Season generously with salt and pepper.
In a medium bowl, mix together turmeric, garlic, minced Scotch bonnet, curry powder, ground allspice, ginger, and thyme leaves. Massage the spice blend all over the chicken, making sure it gets under the skin. Cover and marinate in the refrigerator for at least 1 hour (up to 12 hours for maximum flavor).
Heat 2 tablespoons of oil in a large, heavy-bottomed pot over medium heat. Sear the chicken pieces in batches until lightly browned on both sides, about 5 minutes per batch. Remove the chicken and set aside.
Add the remaining 2 tablespoons of oil to the pot. Stir in an additional tablespoon of curry powder, minced ginger, and optional spices (cumin, coriander, garam masala). Cook for 1 minute, stirring constantly.
Mix in the onions, carrots (if using), and potatoes (if using). Sauté until softened, about 5 minutes.
Return the chicken to the pot, along with accumulated juices. Stir to coat the chicken in the aromatic vegetables and spices.
Add 1 cup of hot water, thyme sprigs, whole Scotch bonnet, and allspice berries. Bring the liquid to a boil, then reduce the heat to low. Cover and simmer for 30 minutes.
Uncover the pot and stir in the coconut milk. Simmer for another 15 minutes, uncovered, until the sauce thickens into a rich, gravy-like consistency. If the sauce gets too thick, add extra water or coconut milk to adjust the consistency.
Taste and adjust the seasoning with salt and pepper as needed. Serve hot with steamed rice or roti.