Preheat the oven to 450°F.
Place the cauliflower florets and Brussels sprouts in a large bowl. Add 3 tablespoons of olive oil and toss until evenly coated, then season with salt and pepper and toss again.
Pour the vegetables onto a baking sheet and arrange so that the Brussels sprouts are cut-side down and the pieces aren’t touching.
Place in the oven and roast, stirring after the 10-minute mark, until the vegetables are tender, about 15 minutes total. Remove from the oven.
While the vegetables are roasting, heat a 3½ quart saucepan over medium heat and add the remaining 1 tablespoon olive oil.
Add the onion and sauté until it’s translucent, then add the broth.
Bring everything to a boil, then reduce the heat to low and simmer for about 10 minutes.
Add two-thirds of the roasted vegetables to the saucepan and simmer for a few minutes, stirring occasionally. Remove from heat.
Purée the soup either by using an immersion blender right in the pan or by transferring the mixture to a blender. Stir in the coconut milk and purée again if necessary.
Pour into 4 serving bowls, garnish with remaining roasted vegetables, and serve immediately.