Moroccan lentil soup recipe gets better with time, so make it a day ahead if you can--or try our easy slow cooker/crock pot recipe variation.
Heat oil in a soup pot or Dutch oven over medium heat; add onions and carrots and cook, stirring occasionally, until softened, about 10 minutes. Stir in garlic and cook for 30 seconds. Add cumin, coriander, turmeric, cinnamon and pepper; cook, stirring, until fragrant, about 1 minute.
Add broth, water, cauliflower, lentils, tomatoes and tomato paste; bring to a boil. Reduce heat and simmer, partially covered, stirring occasionally, until the lentils are tender but not mushy, 45 to 55 minutes. Stir in spinach and cook until wilted, 5 minutes.
Just before serving, stir in cilantro and lemon juice.