Begin by preparing the butternut squash. Cut off the top and bottom, then slice it in half lengthwise. Remove the seeds and peel the skin. Cut the flesh into 1-inch cubes.
In a large pot, heat the olive oil over medium heat. Add the chopped onion and sauté for about 5 minutes, until translucent.
Stir in the minced garlic and cook for an additional minute until fragrant.
Add the cubed butternut squash, vegetable broth, ground cumin, ground ginger, ground nutmeg, salt, and black pepper to the pot. Bring the mixture to a boil.
Once boiling, reduce heat to low and simmer for about 20 minutes, or until the squash is tender.
Remove the pot from heat. Using a blender or immersion blender, puree the soup until smooth.
Return the pureed soup to the pot and stir in the coconut milk if desired. Heat through for a few minutes.
Taste and adjust seasoning, adding more salt or pepper if needed.
Serve hot, garnished with a drizzle of coconut milk or croutons if desired.