Heat olive oil in a large pot over medium heat. Add onions, garlic, and ginger. Sauté until onions are translucent.
Add curry powder, cumin, and coriander. Cook for another minute.
Add carrots, celery, apple, and red lentils. Stir to combine.
Pour in chicken broth and bring to a boil. Reduce heat and simmer for 20 minutes, until lentils are tender.
Use a blender to puree the soup until smooth. Return to pot.
Stir in coconut milk, salt, pepper, and lemon juice. Heat through.
Garnish with chopped cilantro before serving.