Preheat the oven to 400 degrees F. Place the squash on a rimmed baking sheet, drizzle over the melted butter, season with salt and pepper and toss to combine. Spread out in a single layer on the baking sheet, allowing space in between the cubes when possible. Roast until tender and lightly browned on the bottom, about 25 minutes.
Heat the oil in a stockpot over medium heat. Add the shallots and saute until the shallots have softened and turned a light golden brown, about 10 minutes. Add the broth and bring to a simmer.
Meanwhile, if using bacon, heat a large heavy skillet over medium-high heat and add the bacon pieces. Saute until they are cooked and crisp, then transfer them with a slotted spoon to some paper towels to drain.
Add the cooked butternut squash to the simmering broth. Working in batches, puree the soup in a blender or food processor (alternately you can run the mixture through a food mill, which offers a great kind of nubby texture, or puree right in the pot with an immersion blender). Return the pureed soup to the pot. Taste and adjust the seasoning.
Add the cream and heat just until warmed through. Place the creme fraiche in a small bowl and stir with a fork make it very soft and creamy. Ladle the soup into bowls, swirl in a tablespoon of the creme fraiche, and sprinkle with some crisped bacon, if using.
You can also use chopped onions; just bump up the amount to about 3/4 cup.
Recipe courtesy of Katie Workman