First, hook up your iPhone to iTunes. Make sure autosync is off.
Right click on your iPhone in the left pane and choose transfer purchases. This will get all your apps on the computer.
Now right click on the iPhone and choose backup iPhone (this will have all your game saves, app settings, contacts (but you're also going to sync those in the next step), notes, etc, but not pics from your old computer, songs, videos, etc....all the stuff after ringtones in the middle pane under summary).
Go to the middle pane and choose all the programs you need to sync (but not the stuff after the ringtones). Sync.
Use Senuti (costs) or expod (free) to transfer music, video, and other media. Use Image Capture to get camera roll pics transferred (although they are in the backup). Phoneview is another program to consider. If youre jailbroke, you can do much more easily, but I assume youre not.
FYI, to be safe, use Funambol (free) to sync your contacts online. That way if anything goes wrong, you still have them somewhere.