In a large pot or Dutch oven, heat the olive oil over medium heat. Add the diced onion and minced garlic, cooking until soft, about 3-4 minutes.
Add the ground beef to the pot, breaking it apart with a wooden spoon. Cook until browned, about 5-7 minutes. Drain any excess fat if necessary.
Stir in the diced potatoes, beef broth, salt, black pepper, thyme, and paprika. Bring the mixture to a boil, then reduce the heat to a simmer. Cover and cook for about 15 minutes, or until the potatoes are fork-tender.
Once the potatoes are cooked, add the milk, shredded Cheddar cheese, and cream cheese. Stir until the cheeses are melted and the soup is creamy, about 5 minutes.
Taste and adjust seasonings if necessary. If you prefer a thicker soup, let it simmer uncovered for an additional 5 minutes.
Serve hot, garnished with additional shredded cheese if desired.