I had this same problem, and in searching this forum I noted that it has come up again and again with no difinitive resolution. Therefore, I combed through the files comparing 3.0.5 (which works) to later versions. I believe I found the answer; at least it worked for me on 3.1, and then again after upgrading to 3.4.2.
There is a cookie bug in IIS 5, and wordpress had a work-around coded into a function in the \wp-includes\pluggable.php file. They removed that cookie-bug-fix from that file starting with 3.1, so that after you log off as admin, you can’t log back on because the fix isn’t there (they assume you’ve upgraded to IIS 7 by then).
Get the code for 3.0.5 and search pluggable.php for the string ‘IIS’, or just find the wp_redirect function and copy the contents of that function over the contents of the function on your non-working version (3.1 or above). You should probably make a backup of the file first.
Hope it works for you.
– Jon