Pre-cook the lentils: In a large pot, cover lentils with 4–6 inches of water. Bring to a boil, then simmer uncovered for 25–30 minutes, until just tender. Drain any excess water.
(In parallel) Prepare the broth base: In a soup pot, heat olive oil over medium heat. Add onion, garlic, carrot, and celery. Season with ¼ tsp salt and ¼ tsp pepper. Cook for 5–6 minutes, stirring frequently, until softened. Pour in the chopped tomatoes, tomato paste, 4–5 cups of water or broth, rosemary, thyme, parsley, cayenne (if using), and another ½ tsp salt and ¼ tsp pepper. Bring to a gentle boil and then lower the heat to a simmer, cover with a lid and cook for 30–45 minutes, stirring occasionally, to develop deep flavour.
Add lentils and Spices: Stir in the cooked lentils, cumin, and garam masala (if using). Simmer another 10 minutes. Taste and adjust seasoning.
(Optional) For a creamy texture, blend 2 cups of the soup and return it to the pot, or use an immersion blender to partially blend directly in the pot.
Finish the soup: Stir in the remaining chopped greens. Simmer for 5–7 minutes until softened. Remove from heat and optionally stir in lemon juice. Adjust final seasoning to taste.
Cool and store: Let cool slightly before serving. Refrigerate leftovers for up to 5 days or freeze for up to 1 month.