In a large dutch oven pot, melt butter. Add carrots, celery, onion, bell pepper, mushrooms, and ham. Cook over medium heat until vegetables are crisp-tender, should be about 10-15 minutes. Stir occasionally. Do NOT brown vegetables.
Stir in flour and cornstarch. Cook until flour is dissolved and you have formed a rue. This should take about 3-4 minutes.
Add broth and cook. Stir constantly, until slightly thickened and flour has been combined.
Add milk, paprika, cayenne, and mustard. Stir until ingredients are mixed well.
Turn heat to medium - low!
GRADUALLY, stir in cheese - do NOT add cheese all at one time. Stir in a batch, until melted. Then add another batch. Incorporate each batch thoroughly before adding another.
To avoid curdling, do NOT allow soup to boil after the cheese has been added.
Season with salt and pepper.
Serve PIPING HOT.