Heat oil in a large stock pot over medium heat. Saute onion and shallots until soft and translucent. Stir in garlic, ginger, lemon grass and curry powder. Cook for about 5 minutes, to release the flavors of the curry. Stir in green pepper, carrots, mushrooms and tofu. Pour in vegetable stock and water. Season with fish sauce and red pepper flakes. Bring to a boil, then stir in potatoes and coconut milk. When soup returns to a boil, reduce heat and simmer for 40 to 60 minutes, or until potatoes are tender. Garnish each bowl with a pile of bean sprouts and cilantro.