Is there an easy way to create an admin user that has read only permissions? That is, they can login and see everything an admin can, but they cannot change anything at all.
AFAIK, no, not at all.
If using a single site installation, you'd need to carefully disable (not hide, disable) all possible user actions that modify things. And this has to be done screen by screen (Posts, Pages, Comments, Appearance, Plugins, etc).
For example, in the All Posts screen (
In the Post Edit screen (
In the previous examples, all function names contain the ID of the WPSE Question where they were taken from.
Also, refer to this Gist to see how to redirect users if they try to access a page using a direct URL.
If using a Multisite installation, @BrianFegter Answer to this Question: How can I open up my administrative panel to everyone?, has this nice suggestion:
May be adminimize plugin can help you. http://wordpress.org/extend/plugins/adminimize/ it allows to set/controll users permissions.