How do I stop marking mail as read caused by looking at the preview pane?
You can change the mark as read delay to a great value, for example 30 seconds, by typing the following in the Terminal:

defaults write com.apple.Mail MarkAsReadDelay 30


(NB: A value of -1 will disable marking as read from Preview if the preview window is hidden.  Tested on Mail 5.2/OSX 10.7.4)