Brown the sausage in a large pot or Dutch oven over medium heat, breaking it up with a spoon. Drain off excess grease.
Add the olive oil, onion, and garlic to the pot with the sausage. Cook until the onion softens, about 5 minutes.
Pour in the chicken broth. Add the diced potatoes, thyme, salt, and pepper. Bring the mixture to a boil, then reduce heat and simmer until the potatoes are tender, about 15 to 20 minutes.
In a separate bowl, whisk the flour into the milk until smooth to create a slurry.
Slowly pour the milk mixture into the simmering soup, stirring constantly to prevent lumps. Continue to cook, stirring often, until the soup thickens, about 5 to 7 minutes. Do not let it boil rapidly once the milk is added.
Stir in the heavy cream. If using cheese, reduce the heat to low and stir in the shredded cheddar until melted and smooth.
Taste and adjust seasoning if needed. Serve hot, garnished with fresh parsley.