In a large pot, melt the butter over medium heat and sauté the onion until translucent.
Add the ground beef and cook until browned. Drain any excess grease.
Stir in the flour to coat the beef, then slowly add the chicken broth while stirring.
Add the diced potatoes and bring the mixture to a boil. Reduce heat and simmer until potatoes are tender.
Gradually stir in the milk and shredded cheddar cheese until the cheese is melted and the soup is creamy.
Season with salt and pepper to taste. Serve hot with optional green onions or parsley for garnish.