Place sausage into a large dutch oven pot, and cook over medium heat until all meat is browned. Remove sausage with a slotted spoon, leaving any grease behind in the pan. Place cooked sausage in a container, cover and set aside.
Place butter and onion into the dutch oven, along with sausage grease, and cook until onions are translucent and tender, approximately 3-5 minutes. Add in garlic and cook for approximately 30 seconds.
Add flour to the mixture and whisk until smooth. The mixture will be thick. Cook for 1-2 minutes.
Slowly add in chicken broth, while whisking constantly. Once chicken broth has been added, and thoroughly mixed with the flour mixture, add in milk, heavy cream, salt and pepper. Whisk until well combined.
Gently add in potatoes, taking care so that they do not splash liquid out of the pan. Bring to a simmer and cook until the potatoes are fork tender and come apart when pierced with a fork. This takes 10-15 minutes, depending on the size of your potatoes. Stir occasionally.
Reduce heat to low, then remove approximately half of the soup from the pan.
Soup that is removed can be placed directly into a blender, or into a separate bowl. If using a blender, blend the removed soup until smooth. If moving to a bowl, use an immersion blender, or potato masher, to smooth the mixture as much as possible.
After blending soup, return to dutch oven. Then add sour cream and sausage to soup mixture.
Allow soup to simmer on low for 15 minutes, stirring occasionally.
Serve hot with toppings such as bacon bits, shredded cheese, chives green onions and additional sour cream.