So one of our big clients is moving all of their sites onto one domain. Which led to lots of digging about the best way to redirect visitors to the new location, while still preserving the search engine rankings. A 301 (permanent) redirect is definitely the best way to go. I went with an htaccess file. A simple line of code (Redirect 301 /old/old.html http://www.you.com/new.html), save it as “.htaccess”, upload it to the server and you’re set. This site has some pretty good info about this and other ways of doing redirects: http://www.stevenhargrove.com/redirect-web-pages/
It works very similarly to how DNS propagates, very slowly. So I would keep my old sites still working for at least a year.