Cook the onion in a pan with a small bit of butter until soft. Stir in the flour to create almost a roux for a minute or so.
Stir in the milk, a little at a time, and then bring up to boiling point. Add the remaining ingredients and wait until the cheese has hit melting point. Taste and season accordingly, serve warm with bread.