1. Melt butter in a large stock pot over medium heat.
2. Add the sliced onions to the pan and cook stirring occasionally until caramelized, about 15 minutes.
3. Add the garlic, salt, cinnamon, nutmeg and ginger to the onions and stir constantly for one minute.
4. Add ¼ cup of the chicken stock and use wooden spoon to scrape any browned bits from the bottom of the pan.
5. Add the remaining chicken broth, water and pumpkin puree and stir to combine.
6. Turn heat to low and simmer the soup for 20 minutes.
7. Turn the stove off and use a handheld immersion blender to puree the soup. Alternative, you may use a blender just break the soup up into 3 batches.
8. Stir the heavy cream into the soup. Serve immediately with warm bread if desired.