Heat olive oil or butter in a large pot over medium heat.
- Add chopped onion and sauté until translucent, about 5 minutes.
- Add minced garlic and cook for another minute until fragrant.
- Stir in diced potato (if using) and broth; bring to a boil.
- Reduce heat and simmer until potatoes are tender, about 15 minutes.
- Add chopped spinach and cook for 2-3 minutes until wilted.
- Remove from heat and puree the soup using an immersion blender or in batches in a regular blender until smooth.
- Return soup to the pot and stir in cream or milk if desired.
- Season with salt, pepper, and optional nutmeg or lemon juice to taste.
- Heat through gently and serve warm.