Heat olive oil in a large pot over medium heat. Add onion and cook until softened, about 5 minutes. Add garlic and cook for 1 minute until fragrant.
Stir in pumpkin puree, vegetable broth, maple syrup, cinnamon, nutmeg, and ginger.
Bring to a simmer, then reduce heat and cook for 15-20 minutes, stirring occasionally.
Remove from heat and carefully blend soup until smooth using an immersion blender or regular blender (in batches).
Stir in heavy cream (or coconut milk) and season with salt and pepper.
Heat through gently over low heat, being careful not to boil.
Serve hot, garnished as desired.