Heat oil in a large stock pot over medium heat. Cook chicken and onions in oil until onions are soft and translucent; remove onions and chicken from pot and set aside.
Saute shallots in pot for about 1 minute, then stir in garlic, ginger, lemon grass and curry powder. Continue to cook for about 5 minutes, then stir in bell pepper and carrots. Return chicken and onion to pot and stir in chicken broth, water and fish sauce. Season with lime leaves, bay leaf and red pepper flakes.
Bring to a boil and introduce potatoes. Return to a boil and pour in coconut milk. Reduce heat and simmer 40 to 60 minutes, until potatoes and chicken are tender. Garnish each dish with a sprig of fresh cilantro.