so many different cheeses work well with ham (gruyere, swiss, red leicester to name a few), but cheddar is the most classic option for a ham and cheese sandwich. i recommend a mature cheddar, just to pack in the flavour. its sharpness will also help balance out the saltiness and sweetness of the ham.