Heat the olive oil or butter in a large heavy-bottomed pot over medium heat until it shimmers and begins to bubble softly.
Add the chopped onion and sauté for about 5 minutes, stirring occasionally, until it turns translucent and begins to smell sweet and fragrant.
Add the minced garlic and cook for another minute, until fragrant and slightly golden, being careful not to burn it.
Pour in the vegetable broth and bring it to a gentle simmer, then add the fresh spinach. Stir briefly to combine.
Reduce the heat to low and let the greens simmer for about 10 minutes, until tender and bright green.
Use an immersion blender directly in the pot to blend the mixture until smooth and velvety, or transfer in batches to a blender and puree carefully.
Stir in the heavy cream or coconut milk, warming the soup gently for 2-3 minutes until heated through and shimmering.
Finish by squeezing in the lemon juice and seasoning with salt and pepper, tasting and adjusting until bright and balanced.
Remove from heat, let sit for a minute, then ladle into bowls and enjoy the warm, velvety green soup.