In a large pot or Dutch oven, heat a little oil over medium heat. Add ground beef and cook until browned and reaches 165°F internal temperature, breaking it up as it cooks (about 5-7 minutes).
Drain excess fat and add chopped onion. Sauté for 3-4 minutes until softened, then add garlic and cook 30 seconds more.
Stir in taco seasoning, coating the beef and onion mixture evenly.
Add diced tomatoes with green chilies, black beans, corn, and beef broth. Stir to combine.
Bring to a boil, then reduce heat to medium-low and simmer for 10-15 minutes until gently bubbling around edges.
Reduce heat to low and stir in heavy cream and cubed cream cheese, stirring gently for 2-3 minutes until cream cheese melts completely.
Add shredded cheddar cheese one handful at a time, stirring constantly until each addition melts before adding more.
Season with salt and pepper to taste. Ladle into bowls and top with desired toppings.
Notes
Use 80/20 ground beef for best flavor, or substitute with ground turkey or chicken (add olive oil if using leaner meat and cook to 165°F).
Add cheese gradually over low heat to prevent clumping. Block cheese melts better than pre-shredded. Soup tastes even better the next day.