Begin by peeling, seeding, and cutting the butternut squash into small cubes.
In a large pot, heat the olive oil over medium heat. Add the diced onion and sauté for about 5 minutes until softened.
Add the minced garlic and cook for an additional 1-2 minutes, stirring frequently to prevent burning.
Add the cubed butternut squash to the pot along with the vegetable broth. Bring the mixture to a boil.
Once boiling, reduce the heat and stir in the ground cinnamon, nutmeg, salt, and pepper. Simmer for 20 minutes, or until the squash is tender.
Remove the pot from the heat. If using, stir in the coconut milk.
Use a blender or an immersion blender to puree the soup until smooth. You may need to do this in batches if using a traditional blender; make sure to allow steam to escape.
Taste and adjust seasoning if necessary. Return the soup to the pot and heat gently before serving.
Ladle the soup into bowls and garnish with fresh parsley.