Put a large pot over medium heat and add the olive oil.
Throw the onions, garlic, and sweet potatoes into the pot and let them cook a bit, just until the onions start to become a little soft.
Grate some ginger over the pot as the vegetables are heating up and stir that in too.
Once the mixture starts to become fragrant (you'll smell that ginger as it heats up), add a few pinches of salt and pepper and pour in the stock.
Let this cook over medium-low heat until you can poke a fork in one of the sweet potato pieces and it falls apart.
Remove it from the heat and puree while it's hot. This will help give you a nice smooth texture. Using an immersion blender is the easiest method, as you can leave the soup in the pot. If you'd rather use a regular blender you'll probably have to puree in batches.
Once the soup is pureed and you can't see any more chunks, add the can of coconut milk (or milk/cream of your choice).
Using the immersion blender again, blend the coconut milk into the soup. Using the blender again at this stage helps the texture to become very velvety. Add more salt and pepper, to your taste.
Ladle the soup into bowls and serve with a dollop of coconut yogurt or a swirl of coconut cream, and a sprinkle of chopped parsley (if you wish).