In a large saucepan, heat the oil over medium heat.
Add the onion, garlic and sauté for 5-6 minutes, until translucent.
Stir in the ginger, curry powder, coriander, and cumin and sauté for 2 minutes, until fragrant.
Add the broth and lentils and stir to combine.
Bring the mixture to a low boil, then reduce the heat and simmer for 5 minutes more.
Stir in the cauliflower and sweet potato.
Cover and reduce the heat to medium-low. Simmer for 20-25 minutes, until the cauliflower and sweet potato are tender.
Season with the salt and pepper, and add more curry powder if desired.
Stir in the spinach and cook until wilted.
Ladle the soup into bowls and top with cilantro, if desired.