Actually, there are many ways you can do this, each with its own tradeoffs.
First, let's assume that your site is "static" or at least only modified by you. In that case, you can actually add your domain as a dreamhost domain immediately, set it up, and test it by using a local hosts file on the client machine you're going to use for testing (your home machine, say). Sure, the DreamHost name servers will think that your domain is hosted at DreamHost while your old provider's DNS server will say otherwise, but this doesn't matter at this point because the registrar will say that your old provider is the official name server for the domain. After you get everything set up, you change the name servers for your domain. As the change propagates, part of the world will point to the old site and part will point to the new site, but no one will know the difference because you've done a great job and both are identical!
Now if your site is transactional and has users who submit posts to a board, comments to your blog, etc, you have to disable updates while you copy your databases and user-contributed image directory and other stuff over. Then you can enable updates on your new site after the copy is complete.
Alternatively, you could put up a maintenance notice on your old site while transition everything over, then change the name server when the new site is ready to go.
There's lots of ways to skin this cat like the ones suggested by previous posters and I'm sure that others can come up with even better solutions.
Welcome to the DreamHost community!
Free unique IP and $67 off with promo code [color=#CC0000]LENSMANFREEIP67[/color] or use [color=#CC0000]LENSMAN97[/color] for $97 off. Click here for more options