Preheat your oven to 400°F (200°C). Cut the butternut squash in half lengthwise and scoop out the seeds. Drizzle the cut sides with half of the olive oil, season with salt and pepper, and place cut-side down on a baking sheet. Roast for 35 to 45 minutes, or until tender when pierced with a fork. Let cool slightly, then scoop the flesh out of the skin.
While the squash roasts, heat the remaining olive oil in a large pot or Dutch oven over medium heat. Add the chopped onion and carrots. Cook until softened, about 8 minutes.
Add the minced garlic and cook for 1 minute until fragrant.
Add the roasted squash flesh, broth, salt, pepper, nutmeg, and smoked paprika to the pot. Bring the mixture to a simmer.
Remove the pot from the heat. Use an immersion blender to blend the soup until completely smooth and velvety. Alternatively, carefully transfer the soup in batches to a standard blender and blend until smooth, then return it to the pot.
Stir in the milk or half-and-half. Heat gently over low heat, stirring occasionally, until warmed through. Do not boil after adding dairy.
Taste and adjust seasonings as needed. Serve hot, garnished with fresh sage.
Notes
For a richer flavor, roast the squash with the sage leaves tucked around it.
If you prefer a thicker soup, use less broth or simmer uncovered for 10 minutes before adding the dairy.
This soup freezes well for up to three months. Cool completely before freezing.