In a large saucepan, combine the potatoes, water, carrots and onion. Bring everything to a boil, then reduce the heat, cover and cook until tender, 10 to 15 minutes.
In another saucepan, melt the butter. Stir in the flour until smooth. Gradually add in the milk, then the salt and pepper. Bring the mixture to a boil, then cook and stir until thickened (about two minutes).
Stir in the cheese until melted, then stir the combined mixture into the undrained potatoes and vegetables.
Add the ham and peas, heat through, then serve.
