Prep the ingredients: Peel and cube the sweet potatoes into roughly 1-inch pieces.
Chop the onion and carrot. Mince the garlic and grate the ginger if using.
Sauté the aromatics: In a large pot, heat the olive oil or butter over medium heat. Add onion and carrot with a pinch of salt.
Cook 5–7 minutes, stirring, until the onion is soft and fragrant.
Add garlic and spices: Stir in the garlic, cumin, and smoked paprika (or a pinch of cinnamon). Cook 30–60 seconds, just until fragrant. Don’t let the garlic brown.
Add sweet potatoes and broth: Add the cubed sweet potatoes and pour in the broth.
If using ginger, add it now. Bring to a boil, then reduce heat to a gentle simmer.
Simmer until tender: Cover partially and cook 15–20 minutes, or until the sweet potatoes are very soft when pierced with a fork.
Blend the soup: Turn off the heat. Use an immersion blender to puree until smooth.
Or carefully transfer to a blender in batches, venting the lid. Blend until silky and return to the pot.
Add creaminess: Stir in the heavy cream or coconut milk. Start with 1/2 cup and add more if you prefer a richer texture.
If the soup is too thick, thin with a splash of broth or water.
Season and brighten: Add salt and black pepper to taste. Finish with lemon or lime juice to lift the flavors. Adjust spices as you like.
Garnish and serve: Ladle into bowls.
Top with chopped herbs, a drizzle of cream or olive oil, and some toasted seeds or nuts for crunch.