In a large stockpot over medium-high heat, heat the oil until shimmering.
Add the onions and cook, stirring, until tender and starting to tenderize and brown a bit, about 5 to 6 minutes.
Turn down the heat to medium and stir the garlic and cook until aromatic, about 30 seconds.
Add the sweet potatoes and cauliflower, turn the heat back up to medium-high, season with salt and pepper and cook until slightly softened, about 5 minutes. If the bottom of the pot starts to look dry, add a little olive oil if you need to.
Add the broth and coconut milk and stir to combine.
Stir in the brown sugar, maple syrup, curry powder, ginger, and paprika until combined. Bring to a simmer, reduce the heat to low, cover, and cook until the sweet potatoes and cauliflower are tender and can be easily pierced with a fork, about 25 minutes.
Remove from the heat and, using an immersion blender, puree the soup until completely smooth. (If using a stand blender, let the soup cool a bit, then puree in batches and return the soup to the pot.)
Return the soup to medium-low heat and continue cooking until thickened, 7 to 9 minutes. Taste, and season with more salt, pepper and/or smoked paprika, and serve it up. You can garnish with drizzles of coconut milk, sprinkles of smoked paprika and chopped parsley.