Though, seriously (well, roughly seriously), the "o" spelling was originally based on certain rules:
- When ou before l is pronounced o drop u: mold, sholder. But not sol (for soul).
- When ough is final spell o, u, ock or up, according to the pronunciation: altho, boro, donut, furlo, tho, thoro, thru, hock, hiccup.
- When our is final and ou is pronounced as a short vowel drop u: color, honor, labor
http://www.bartelby.org/185/35.htmlI suppose the "t" in "thought" means that "ough" is not final.