In a large soup pot or Dutch oven, cook the ground beef over medium heat until no longer pink. Drain any excess grease.
Add the onion, garlic, carrots, and celery to the pot with the beef. Cook for 5–7 minutes until vegetables begin to soften.
Stir in the diced potatoes, chicken broth, salt, pepper, and paprika. Bring to a boil, then reduce heat and simmer for 15 minutes, or until potatoes are tender.
In a separate small saucepan, melt butter over medium heat. Stir in flour and cook for 1 minute. Slowly whisk in the milk and cook until thickened, about 3–5 minutes. Remove from heat and stir in shredded cheese until melted.
Pour the cheese sauce into the soup pot and stir to combine. Let simmer for a few minutes until everything is heated through. Stir in sour cream if using.
Ladle the soup into bowls and top with your choice of green onions, extra cheese, or bacon crumbles.