What a difference a letter makes - by adding one letter at a time, a word changes meaning and pronunciation. Based on tough, and taking a liberty with the surname Trought (pronounced "Trout"), this picture shows all seven normal pronunciations of "ough" in British English.
Each word is base on the word above it (or both the words above it) with the addition of just one letter. None of these words rhyme with each other!
Our american cousins pronounce thorough and borough in their own way, so they only have 6 ways of saying ough! They must have real fun with Loughborough.
The following three words are not really in common usage, one being archaic, one being dialect, and while hiccough is in the SOED, it is a little doubtful thta it was ever in common usage, and may be a little pretentious . Technically they are ways to pronounce "ough".
We must not forget "ough" itself. If you look this up in the Shorter Oxford English Dictionary (SOED) it does appear, with a pronunciation that does not really match any of the above. Its a variation on the sound "ugh" (the SOED CD version will pronounce it for you). So maybe there are actually 11 ways.
Some people differentiate between the "ow" sound of plough and bough, and the "ou" sound of drought (12 ways), and there are also three names that are a little different - Coughlin (Coglin), Gough (Gahf) and Ayscough (Askew) (15 ways).
And lastly, one which I have never heard of except on one web page, and is not in my copy of the SOED, Trough pronounced as Troth (16 ways). That page also mentions soughing (sooching) and references the Oxford Dictionary, but my SOED has the word, but no pronunciation for it (17 ways).