Heat olive oil in a large pot over medium heat.
Add onion, carrots, and celery. Cook for 5–6 minutes until softened.
Stir in garlic, cumin, paprika, and turmeric. Cook for 1 minute.
Add lentils, diced tomatoes, broth, and bay leaf. Stir well.
Bring to a boil, then reduce heat. Cover and simmer 30–35 minutes, until lentils are tender.
Remove bay leaf. Season with salt and pepper.
Blend part of the soup with an immersion blender if you prefer it creamier.
Stir in spinach or kale until wilted.
Add lemon juice before serving.
Serve warm with crusty bread or salad.