Generously butter and flour a 2-quart soufflé dish. Remove any excess flour.
Preheat the oven to 400°F.
In a medium saucepan, melt the butter over medium heat. Whisk in the flour and stir for approximately five minutes to make a roux. Add the milk slowly and whisk until the mixture is very smooth. Continue whisking over medium-high heat and cook until the mixture comes to a boil. Continue cooking for 4-5 minutes until the mixture gets very thick.
Remove from the heat and whisk in the egg yolks one at a time until fully incorporated.
Using a wooden spoon, mix in cheese until melted. Add chopped ham, and season with salt and pepper.
Transfer the mixture to a medium mixing bowl.
In a separate bowl, whip the egg whites with an electric mixer on medium-high speed to soft peaks.
Using a rubber spatula, transfer ¼ of the egg whites into the soufflé mixture and stir until fully combined.
Add half of the remaining egg whites and fold gently together until mixture is smooth. Add the remaining egg whites and fold in gently, being careful to keep the airiness and lightness of the mixture.
Spoon the mixture into prepared soufflé dish, and bake 40 minutes or until soufflé raises and is golden brown. Serve immediately.