Preheat the oven to 400°F. Toss the cubed butternut squash with olive oil on a baking sheet, spreading it out in an even layer. Roast for 25-30 minutes, or until the squash is tender and lightly caramelized.
While the squash roasts, heat a large pot over medium heat. Add the chopped onion and cook for 5-7 minutes, stirring occasionally, until softened and translucent.
Add the minced garlic to the pot and cook for 1 minute, stirring constantly, until fragrant.
Add the roasted butternut squash, vegetable broth, cinnamon, and nutmeg to the pot. Bring to a simmer and cook for 10 minutes, allowing the flavors to meld.
Use an immersion blender to puree the soup until smooth and creamy. Alternatively, carefully transfer the soup in batches to a blender and blend until smooth.
Stir in the heavy cream and season with salt and pepper to taste. Warm the soup gently for 2-3 minutes, stirring occasionally, until heated through. Serve warm.