Grab a large pot and place it over medium heat. Add the oil and let it warm up before tossing in the diced onion and sautéing, stirring occasionally, until it turns translucent and soft, which should take about 3-5 minutes.
Now, it's time to add the flavor - stir in the minced garlic, salt, dried rosemary, ground ginger, and paprika (if using). Let these aromatic ingredients cook together for 2-3 minutes, stirring occasionally.
Next add the cubed butternut squash and sweet potato to the pot, giving them a good stir to ensure they're well-coated with the onion and garlic mixture. Let the veggies cook for about 5 minutes, allowing the onions to caramelize slightly and the outsides of the squash and sweet potato to develop a bit of color.
Pour in the broth, making sure there's enough to completely cover the vegetables, adding more water if needed. Crank up the heat and bring the mixture to a boil, then lower the heat to a gentle simmer.Pop a lid on your pot and let the soup simmer away for about 20-30 minutes on low or medium-low heat. You'll know it's ready when the squash and sweet potatoes are tender enough to be easily pierced with a fork. Once the vegetables are nice and soft, it's time to blend! If you have an immersion blender, you can purée the soup right in the pot until it's silky smooth. If you don't have one, carefully transfer the soup in batches to a blender or Vitamix. Just remember to be extra cautious and vent the mix well when blending hot liquids, or you may find yourself with a small explosion!
If you used a regular blender, pour the puréed soup back into the pot. Stir in the coconut milk or cream and let the soup cook for a few more minutes, allowing the flavors to meld together. Give it a taste and adjust the seasoning as needed, adding a pinch more salt in needed to suit your preferences. Ladle the hot soup into bowls and garnish with a sprinkle of fresh herbs and an extra drizzle of coconut milk or cream, if desired.