Heat the olive oil in a large soup pot over medium heat. Add the carrots, celery and onion and cook for about 5 minutes, or until soft. Add the garlic, cumin, crushed red pepper and cilantro and cook for another minute or two, then season with salt and pepper.
Add the lentils, and stir together for a couple minutes, then pour in the canned tomatoes and vegetable stock and bring to a boil. Reduce heat, cover partially, and simmer for about 20 minutes, or until the lentils have softened and the soup has thickened a bit. (You can add more water if the soup has gotten too thick.)
Stir in the spinach and cook for about 2 -3 more minutes, or until it has wilted. Taste the soup and season with some more salt and pepper if needed.