Melt butter in a sauté pan over medium-low heat. Add leeks and cook for 5-7 minutes, until softened, stirring often.
Add to the slow cooker along with diced potatoes, 3 cups of milk (reserve 1 cup for later), chicken stock, salt and pepper. Cover and slow cook on low heat for 4 hours. Remove the lid and check the potatoes. They should be soft when pierced with a fork.
Mix the reserved 1 cup of cold milk and cornstarch with a whisk until well blended. Add the mixture to the soup and continue to cook on low heat for an additional 10 minutes, or until the soup is thickened. *I transfer the soup into a stockpot to do this on the stovetop over medium-low heat right before serving.
Next, take a potato masher and gently mash potatoes until they are creamy, but leave some chunks for texture. You can also use an immersion blender here, but don't overblend. You just want to blitz it a few times to cream some of the potatoes, while leaving some chunks behind. The soup will continue to thicken as it sits and cools.
Season with additional salt and pepper, to taste.
Ladle into bowls and add crumbled bacon and any other favorite toppings.