Heat the olive oil in a large pot over medium heat. Add the diced onion and cook for 4 minutes until it softens.
Stir in the garlic and ginger. Cook for 1 minute until fragrant.
Add the cumin seeds, turmeric, garam masala, and chili powder. Stir for 30 seconds to toast the spices.
Pour in the lentils and vegetable broth. Bring to a boil, then reduce to a simmer. Cover and cook for 20 minutes.
Add the cauliflower florets and a pinch of salt. Simmer uncovered for 15 minutes until the cauliflower is tender and the lentils are soft.
Stir in the spinach and cook for 2 minutes until it wilts. Taste and adjust salt if needed.
Ladle into bowls and top each serving with chopped cilantro.