I will go a bit against the stream so far and argue that it depends on context. When the majority of users will want to click OK (and I don’t mean you wanting them to click OK!), then it’s fine to make Cancel a link. But if both OK and Cancel represent equally probable paths, then make Cancel a button. Gestalt Laws: things that look similar are perceived as belonging together, having the same importance/concept/whatever. By this reasoning, when faced with equally probable paths, users will look for things that “belong together”. If you make “Cancel” a link, it will look like an exceptional case and add a layer of complexity for the user, who expects a similar-looking object but finds none.

For more on button vs. link, Jakob Nielsen has this to say: http://www.useit.com/alertbox/command-links.html