Heat the olive oil in a large pot or dutch oven over medium heat.
Add the ground beef to pot and break up into small pieces with a fork. Cook the beef until browned and no longer pink, approximately 7 to 10 minutes. Using a slotted spoon, transfer the beef to a bowl and set aside.
Drain off all but 2 tablespoons of fat and return the pot to the heat. Add the onion, celery and carrots to the pot. Cook until softened, stirring occasionally, approximately 3 to 4 minutes.
Stir in the garlic and cook for 1 additional minute. Sprinkle the cornstarch over the onion mixture and stir to combine.
Add the potatoes and stock/broth to the pot stirring to combine. Return the beef the pot and bring the soup to a boil. Turn the heat to low and simmer for 15 minutes or until the potatoes are fork tender. (If skipping the potatoes, return the beef and stock to the pot then move to the next step.)
Stir in the tomatoes, Worcestershire sauce, Italian seasoning and mustard. Simmer for 5 minutes.
Add the half and half and 1 cup of cheese to the soup stirring until the cheese is melted.
Serve bowls of soup topped with additional cheese and parsley.
Notes
More suggested garnishes/toppings: crispy bacon, green onions, Swiss cheese shavings, diced tomatoes and pickles.