Heat the olive oil in a large soup pan or Dutch oven over medium heat; add the onion and sauté until it begins to become translucent (about 4 minutes); add the garlic and continue to sauté for 2 more minutes; add the carrots and celery and cook for about 5 more minutes, stirring often.
Stir in the cumin, curry, and paprika and cook until fragrant (about 1 minute); add the crushed tomatoes and cook for about 2 minutes.
Add the lentils, vegetable broth, and water, along with salt and pepper; increase the heat and bring to a boil, then reduce the heat, so the soup begins to simmer; cover the pot and simmer the soup for about 30 minutes, testing the lentils for tenderness but still holding their shape.
Use an immersion blender to puree the soup to your liking (smooth or chunky); add the lemon juice and zest; adjust the seasoning with salt and pepper.
Garnish each serving with fresh parsley or parsley (optional).