Heat olive oil in a large pot over medium heat. Add the diced onion and cook until translucent, about 4-5 minutes.
Add minced garlic and cook for another 30 seconds until fragrant, being careful not to brown it.
Add chopped zucchini and potato to the pot, stirring to coat with oil. Season with a pinch of salt and cook for about 5 minutes, stirring occasionally.
Pour in the vegetable broth and bring to a gentle boil. Reduce heat to medium-low, cover, and simmer until the zucchini and potato are completely tender, about 15 minutes.
Remove the pot from heat and add the fresh basil leaves. Allow the mixture to cool slightly.
Using an immersion blender or working in batches with a regular blender, purée the soup until completely smooth.
Return the soup to low heat. Add lemon zest and juice, then season with salt and pepper to taste.
If using, stir in grated Parmesan cheese until melted.
Serve in warmed bowls, garnished with additional basil leaves and toasted pine nuts.