Place chicken pieces in a large bowl, squeeze lime juice over them, fill with cold water, and rinse thoroughly. Drain completely, pat dry with paper towels, and set aside.
Add cilantro, culantro, garlic, ginger, half the onion, pimento peppers, thyme leaves, scotch bonnet pepper, and 1 tbsp curry powder to a food processor. Pulse, adding 1–2 tbsp water if needed, until a cohesive green paste forms.
Pour the green seasoning paste over the chicken, add 1/2 tsp salt and 1/2 tsp black pepper, and use tongs or your hands to coat every piece thoroughly. Cover and refrigerate for at least 30 minutes, or up to overnight for best flavor.
Heat oil in a heavy-bottomed pot over medium heat. Mix the remaining 2 tbsp curry powder with 2 tbsp water to form a loose paste, add it to the hot oil, and cook for 2–3 minutes, stirring constantly, until darkened and very fragrant.
Add the remaining chopped onion, diced tomato, and ground geera to the pot. Stir to combine and cook for 3–5 minutes until the onion softens and the tomato breaks down into the sauce.
Add the marinated chicken along with any residual marinade and stir to coat in the curry base. Cook uncovered over medium-high heat for 8–10 minutes, turning occasionally, until the chicken picks up color and the marinade cooks off.
Add the potato chunks (if using) and stir to combine, then pour in 1½ cups water or chicken broth and add the remaining ½ tsp salt. Bring to a boil over medium-high heat.
Reduce heat to medium-low, cover, and cook for 25–30 minutes until the chicken is cooked through to 165°F and the potatoes are soft. Remove the lid for the last 5–10 minutes if you prefer a thicker sauce.
Turn off the heat, squeeze fresh lime juice over the curry, and garnish with chopped cilantro or culantro. Serve immediately with steamed white rice or warm roti.