
In a large Dutch oven, heat the oil and butter over medium heat. Add the onion and cook, stirring occasionally, for about 5 minutes until softened. Add the ginger, cumin, paprika, and garlic and cook for about 30 seconds until fragrant.
Add the sweet potatoes, stock, salt, and pepper. Bring to a boil over medium-high heat. Reduce the heat to medium-low, and simmer for 15 to 20 minutes until the sweet potatoes are very tender.
Ladle half of the soup into a blender canister. Place the lid on top, but remove the center insert to create a vent. Cover the opening loosely with a paper towel or clean dish towel so steam can exit. Puree at medium speed for about 1 minute or until you reach your desired consistency. Transfer the soup to a clean bowl and repeat with the remaining soup. (You can also use an immersion blender to puree the soup in the Dutch oven.)
Return all of the soup to the pot and stir in the cream. Rewarm over medium-low heat for 2 to 3 minutes, stirring occasionally. Serve the soup garnished with more cream, olive oil, and black pepper.