In a large pot, heat the olive oil over medium heat. Add the diced onion and sauté for about 5 minutes until translucent. Add the minced garlic and cook for an additional minute until fragrant.
Stir in the cumin, coriander, and smoked paprika, cooking for another minute to toast the spices.
Add the cubed butternut squash and sweet potatoes to the pot. Pour in the vegetable broth and bring to a boil. Reduce the heat and let it simmer for about 20-25 minutes, or until the squash and sweet potatoes are tender.
While the soup is simmering, preheat the oven to 400°F. On a baking sheet, toss the cauliflower florets with a drizzle of olive oil, salt, and pepper. Roast for 20-25 minutes until golden and crispy, stirring halfway through.
Once the vegetables in the soup are tender, remove the pot from heat. Use an immersion blender to puree the soup until smooth. Stir in the coconut milk and season with salt and pepper to taste.
Serve the soup hot, topped with crispy cauliflower crumbles and a sprinkle of fresh parsley.