Heat 2 tablespoons olive oil in a large pot or Dutch oven on medium heat. Add 1 onion, 1 large carrots, and 1 rib celery (all chopped). Cook for about 3 minutes, stirring often, until slightly soft.
Add 2 cloves garlic (grated), 1 teaspoon paprika, 1 teaspoon cumin, and ¼ teaspoon cinammon if using. Stir and cook for 1 minute, until fragrant. Do not let the garlic brown.
Add 1 cup dried brown lentils (rinsed), 6 cups vegetable broth, ¾ teaspoon salt, and ⅛ teaspoon black pepper. Stir well and bring to a gentle boil. Lower the heat and simmer uncovered for 30 to 45 minutes, until lentils are tender. If using canned lentils, use half the broth and simmer only 15 minutes.
Use an immersion blender to blend a small part of the soup directly in the pot. This makes it creamy but still chunky. Stir in 4 ounces spinach and cook 1 minute, just until wilted. Taste and add more salt if needed.
While the soup cooks, finely chop ⅓ cup walnuts with a knife. Place them in a small bowl. Finely chop 4 tablespoons fresh parsley and add it to the bowl. Add ½ small clove garlic (if using-grated), 2 tablespoons olive oil, zest and juice from ½ lemon, and a pinch of salt. Stir well. The mixture should be coarse, not smooth.
Ladle the soup into bowls. Add a spoonful of yogurt if you like. Spoon the walnut gremolata on top and serve warm.
