The first thing I would try is disabling ALL plugins you have on your site and resetting it to one of the default WP themes. From the little information you've provided, I don't think that'll fix it; but eliminating possible sources of the problem is always a good first step. Assuming that doesn't work, try turning registration back off. Again from the info you've given, I find it unlikely this will help but another good troubleshooting step is to reverse any changes you've made.
Before we move on to more interesting stuff, if my above suggestions seem trite or too simple; let me just say after doing helpdesk for 6 years I've learned to always, always, always check the easy stuff first. :)
I don't know what OS/PHP/MySQL your website runs under and you don't say which part of the dashboard is showing the wrong info (e.g. is it the count of posts or the list of recent posts or both?). However I can tell you on my home/test server, I'm running Ubuntu Linux 6.06, Apache2, MySQL 5.0.22 and PHP 5.1.2 (your basic LAMP setup). I upgraded my test site to WP 2.0.4 as soon as it was released. I also was not automagically redirected to the upgrade page, went to it manually and my site has been working fine. I tried turning on "Anyone can register" and "Users must be registered and logged in to comment". Clicking the update options button dropped me at wp-admin/options.php. Only the page was blank except for WP's logo, a link to the codex, a link to these support forums, the version number (2.0.4) and the # of seconds it took to generate the page (1.78 seconds). I tried adding posts after changing those optoins but cannot recreate your problems.
Since other have mentioned using phoMyAdmin in this thread, I threw my test server's data into phpMyAdmin and ran ANALYSE TABLE wp_posts;. It came back with these 2 error messages on wp_posts: "Key in wrong position at page 3072" and "Corrupt". Then I used phpMyAdmin to run CHECK TABLE wp_posts EXTENDED and got back the same 2 errors plus 1 warning saying "Table is marked as crashed". So then I tried REPAIR TABLE wp_posts; which phpMyAdmin says ran OK. I checked my dev blog again and it was still up & running fine for me. Maybe you should also try running at least ANALYSE TABLE wp_posts; via phpMyAdmin and see what happens?