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, chopped carrot, and potato to the pot. Stir to combine.
Pour in the vegetable broth and add the ground cumin, ground cinnamon, salt, and pepper. Bring to a boil, then reduce the heat and let it simmer for about 20-25 minutes, or until the vegetables are tender.
Remove the pot from heat and use an immersion blender to puree the soup until smooth. Alternatively, you can carefully transfer the soup in batches to a blender.
Return the pureed soup to the pot and stir in the coconut milk. Heat gently over low heat until warmed through. Adjust seasoning if needed.
Serve hot, garnished with fresh parsley or cilantro if desired.