Heat oil in a medium-sized pot over medium heat. Add oil and shallots, stirring often until they start to soften.
Stir in garlic and ginger and cook for an additional minute.
Add curry paste, red pepper flakes and carrots. Cook another1-2 minutes. If you find the mixture dry, drizzle in a little more olive oil. Season with salt and pepper.
Pour in red lentils and stir to coat. Add tomatoes, stock, kaffir lime leaves, lemongrass, sugar and fish sauce. Bring to a boil, then lower heat to a simmer and cook for 25-30 minutes until lentils and carrots are soft.
Stir in lime juice.
Pick out lemon grass stalks and lime leaves.
Turn off the heat and stir in coconut milk and taste. Season with salt and pepper as needed.
Divide soup into bowls. Top with cilantro and serve with lime.