Heat a skillet over medium heat and add the ground beef. Cook, breaking the meat into crumbles, until completely browned. Drain away any excess grease.
Transfer the cooked beef to the crockpot. Add the diced potatoes, onion, and garlic.
Pour in the chicken broth. Sprinkle in the parsley, thyme, basil, salt, and black pepper, then stir everything together.
Cover and cook on LOW for 6-7 hours or HIGH for 3-4 hours, until the potatoes are easily pierced with a fork.
About 30 minutes before serving, stir in the milk or half-and-half and shredded cheddar cheese.
If you want a thicker soup, whisk the flour into the cold milk until smooth before adding it to the crockpot.
Cover again and continue cooking for about 30 minutes, stirring occasionally, until the cheese has melted and the soup is hot and creamy.
Stir in the butter, if using. Taste and add additional salt or black pepper as needed.
Ladle the soup into bowls and top with sliced green onions or chopped fresh parsley. Serve warm with crusty bread or dinner rolls.