I've found the best method for this anymore is changing my local DNS via my router. I just log in to the router interface, and tell it to use ns1.dreamhost.com and ns2.dreamhost.com instead of my isp's namesevers. Reboot the router. done.
The dreamhosters.com method used to be my favorite, the problem tho is CMS's like wordpress need more adjustment than should be necessary to use it, and more adjustments than should be necessary when you go live with real DNS.
The HOSTS file method is roughly equivalent to a http://serverIP/~username method, and is also not very hard to implement on your end.
Each method has pro's and con's based on how your site is configured. It's true using the IP address to reach your site doesn't and can't work on dreamhost. The message to you tho, is there is more than one way to accomplish this, and it sounds like the one you are using is more complicated than one of the others might be.