1. Heat the oil in a large pot or dutch oven over medium heat.
2. Add the onion and garlic.
3. Cook stirring frequently, 10 to 12 minutes, or until the onion is translucent.
4. Add the lentils, broth, bay leaf, and pepper.
5. Stir to mix well.
6. Bring to a boil.
7. Reduce the heat to low.
8. Cover and cook for 40 to 45 minutes, or until the lentils are tender.
9. Pour half of the mixture into a bowl and set aside.
10. Pour the remaining mixture into a blender or food processor.
11. Blend or process until smooth.
12. Return the puree to the pot.
13. Add the celery, cabbage, and carrot.
14. Cook over medium heat, stirring frequently, for 10 minutes, so the flavors blend.
15. Add the tomatoes, lemon juice, vinegar and the reserved lentil mixture.
16. Cook, stirring frequently, for 10 to 12 minutes, or until heated through.
17. Remove and discard the bay leaf.