Melt the butter in a large pot over medium-high heat.
Add the onion and sauté 5 minutes.
Add the celery and sauté 5 minutes.
Add garlic and cook another 2 minutes.
Add the yam, chicken broth, cranberries, cinnamon and nutmeg and bring to a boil.
Reduce the heat to medium-low and simmer until the yams are tender (about 20 minutes).
Working in batches, puree the soup in a blender or processor until smooth.
Return the soup to the pot. Add the cream and stir over medium – low heat until hot.
Season to taste with salt and pepper.