Preheat your oven to 400°F (200°C).
In a large mixing bowl, combine the cubed butternut squash, sweet potato, chopped onion, minced garlic, olive oil, cinnamon, nutmeg, cayenne pepper (if using), salt, and black pepper. Toss until the vegetables are evenly coated with the spices and oil.
Spread the seasoned vegetables in a single layer on a baking sheet. Roast in the preheated oven for 30-35 minutes, or until the vegetables are tender and slightly caramelized.
Transfer the roasted vegetables to a large pot. Add the vegetable broth and bring to a boil over medium heat. Reduce the heat to low and let the soup simmer for 15-20 minutes to allow the flavors to meld together.
Using an immersion blender or a countertop blender, puree the soup until smooth and creamy. If using a countertop blender, work in batches and be cautious of the hot liquid.
Return the soup to the pot and stir in the heavy cream. Heat the soup over low heat until warmed through, but avoid boiling.
Taste and adjust the seasoning with salt and pepper, if needed.
Serve the butternut squash and sweet potato soup hot, garnished with a drizzle of cream, a sprinkle of freshly ground black pepper, and a few roasted pumpkin seeds for added crunch.