In a large saucepan over medium, heat the oil until shimmering. Add the shallots and ginger; cook, stirring often, until lightly browned, 3 to 5 minutes. Add the curry powder and cook, stirring, until fragrant, about 30 seconds. Add the chicken, potatoes, fish sauce and ½ teaspoon pepper; scrape up any browned bits.
Stir in the coconut milk and 1 cup water. Bring to a simmer over medium-high, then cover partially, reduce to medium and cook, stirring occasionally, until a skewer inserted into the potatoes and chicken meets no resistance, about 30 minutes; the curry will be only lightly thickened. Off heat, stir in the lime zest, juice and cilantro, then taste and season with salt and pepper.
Serve over rice or rice noodles.