In a large pot, heat olive oil over medium heat. Add onions, carrots, and celery. Cook until slightly softened, about 5 minutes.
Stir in garlic and ground beef. Cook until beef is browned and cooked through. Drain excess fat if needed.
Add diced potatoes, chicken broth, salt, and pepper. Bring to a boil, then reduce heat and simmer for 15-20 minutes, or until potatoes are tender.
In a separate bowl, whisk together milk and flour (if using) and add to the pot. Stir well and cook for 5 more minutes to thicken.
Stir in shredded cheddar cheese and sour cream until melted and smooth.
Taste and adjust seasoning. Serve hot with extra cheese or green onions, if you're feeling fancy.