My family has made this for generations. It's great for a tight budget because potatoes are cheap and you don't need much ham [although more never hurts = )]. We always serve this with peas - sometimes on the side, sometimes all mixed together.
Place potatoes and onion in a large pot with enough water to cover by an inch. Cover and bring to a boil over high heat. Remove cover, reduce heat to med-high and cook an additional 15 minutes or until potatoes are easily pierced with a paring knife. Drain well.
Meanwhile, melt butter in a saucepan over medium heat.
Combine flour, 1/2 tsp salt, and 1/4 tsp pepper. Whisk into butter until smooth.
Gradually whisk in milk, ensuring liquid has been fully incorporated before adding more. Cook 2-3 minutes until slightly thickened, whisking frequently.
Add mustard to sauce. *Sauce should have a strong flavor on its own as the potatoes mellow it out a lot.*.
Combine drained potatoes, sauce, and ham in the large pot by stirring with a heavy spoon. This will break down some of the potatoes and the released starches will finish binding up the sauce.
Add remaining salt and pepper, more to taste if needed, and heat through.