Preheat oven to 425F.
Cut the butternut squash lengthwise into halves. Discard the seeds. Rub olive oil, salt and black pepper over the flesh of the butternut squash.
Place the butternut squash halves, cut side down, on a sheet pan lined with parchment sheet. Roast in oven for 45 minutes.
Meanwhile, set the heat to medium high on the stove, and heat the remaining olive oil in a large pot. Add onion and sauté till it turns translucent.
Add garlic. Stir and sauté till the onion just starts turning light brown.
Now, add broth and leave to boil. After it boils, switch the stove off. This will serve as our soup base.
Once the butternut squash is roasted, remove from oven and leave to cool till safe to touch.
Scoop out the flesh of butternut squash and discard the shell / skin. Add the roasted flesh to the pot with the soup base.
Add ground cinnamon, nutmeg and maple syrup. If using honey, do not add it at this step. Add honey towards the end of the cooking.
Blend till smooth using an immersion blender. Alternately, divide it into batches and blend using a stand blender. Be extremely cautious if the ingredients are still hot, they can splash onto you when blending.
Keep the blended soup back onto the stove. Continue to heat on medium high till bubbles start to appear on the surface.
Switch the stove off. Add heavy cream or coconut milk. Mix well. If using honey, you can add it to the soup now.
Taste and add salt and/or pepper, if required.
Serve warm, with or without garnishes.