In a large pot, heat olive oil over medium heat. Add the chopped onion and sauté for 5 minutes until translucent.
Stir in the garlic and ginger, cooking for another 2 minutes until fragrant.
Add the diced butternut squash and sweet potatoes to the pot, stirring to combine.
Sprinkle in the cumin, coriander, and cayenne pepper, stirring well to coat the vegetables with the spices. Cook for an additional 2 minutes.
Pour in the vegetable broth and bring to a boil. Once boiling, reduce the heat to a simmer and cover the pot. Let it simmer for about 20-25 minutes, or until the squash and sweet potatoes are tender.
Using an immersion blender, puree the soup until smooth. Alternatively, you can carefully transfer the soup in batches to a countertop blender.
Stir in the coconut milk and season with salt and pepper to taste. Heat through for a few minutes.
Serve hot, garnished with fresh cilantro.
Notes
Adjust the cayenne pepper for your heat preference.