I have had to do the exact same thing a number of times and there are a number of ways to do this. First though, the following is given under the premise that you are not going to move your domain but simply the hosting.
One way would be to point the nameservers on Godaddy to the dreamhost DNS (i.e. NS1.DREAMHOST.COM, NS2.DREAMHOST.com, NS3.DREAMHOST.COM) and then point the MX records for the domain on Dreamhost to wherever you have the email. This may involve an outage of the email during the transfer which is why I found the following solution (i.e. I had clients that had lots of email already going and they did not want an interuption in service).
Another simpler method that I have done a number of times that will not involve any sort of email outage is a follows. You will simply point the “a” record under Godaddy’s DNS panel to Dreamhost. This will keep the domain with Godaddy and keep your email wherever you have it. To do this you need to find out the IP address for where your site is at Dreamhost. Log into the Dreamhost panel, click on “Manage Domains”, and then click on the “DNS” link under the domain. On that page you will find the IP address for the A record. Now log into Godaddy, click on Domain Manger, click on the Domain, under the DNS manager you will be able to update the “A” record with the IP address you got from Dreamhost. Once you make this change it may 24-72 hours to take effect. It will point the hosting to Dreamhost and keep the email where you have it as you are not changing the MX records under the same panel.
Hope that helps.
Please note the above info is given with no guarantees. Be sure to confirm that you have found the right IP address with Dreamhost. I ususally print out the DNS panel screens before making any changes in case I need to change them back.