Here's a search and replace method that takes about 3 minutes and works beautifully. No SQL necessary, and it replaces serialized data (like widgets and plugin options).
1) Be sure to have a backup of your existing database no matter what!
2) Import your database as-is via phpMyAdmin. Go to your database name-->Import. Upload it.
3) Download the script located here: http://interconnectit.com/products/search-and-replace-for-wordpress-databases/
4) Upload it to your root directory where the wp folders are.
5) From the gods: "To use the script, you should install it in the root folder of your WordPress install (if you wish it to automatically pick up your wp-config) or anywhere else you fancy, but you won’t get the automatic config. You should also, to protect yourself from automated scanners looking for this script, rename it first. eg, you could name it as rrrrreplace.php – you’d then visit a url like http://example.com/rrrrreplace.php and follow the on-screen instructions from there."
4) The prompts will guide you through the steps to find and replace your old domain name with your new one.
5) Check out your site. It's online and awesome. Make sure you can login.
6) Delete the script from your server immediately.
7) Take the rest of the night off!