In a Dutch oven, melt the butter over medium heat. Add the mushrooms, carrots, celery, bell pepper and onion and cook until vegetables are tender, 10 to 15 minutes, stirring occasionally. Do not let the vegetables brown (add more butter if needed). Stir in the ham.
Add the flour and cornstarch and cook for 3 minutes, stirring constantly. (The mixture will resemble a roux but with ham and vegetables in it.) Gradually add the broth and cook, stirring until slightly thickened. Add the milk, paprika, mustard and cayenne.
Once the soup is the consistency you like, remove the pot from the burner and gradually add the cheese, stirring until it melts and the soup is smooth. To prevent curdling, do not boil the soup once the cheese is added. Season with salt and pepper.