The one and only way you want to do this is through a permanent redirect. This is also what Google officially recommends in your case.
Example:
In .htaccess, add the following code:
# Redirect olddomain.com etc to
www.newdomain.com
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.newdomain.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=permanent,L]
If your new domain also has a static ip, let's say 66.150.190.10, you should add this, and the mod-rewrite becomes:
# Redirect olddomain.com etc to
www.newdomain.com
RewriteEngine on
RewriteCond %{HTTP_HOST} !^.66.150.190.10$
RewriteCond %{HTTP_HOST} !^www.newdomain.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=permanent,L]
Note that it can take Google several months until it has fully updated its search cache. Only make sure to leave the permanent redirect in place.