Applications that support assigning shortcuts to opening applications:
Alfred, Apptivate, BetterTouchTool, Butler, iKey, Keyboard Maestro, KeyLauncher, Keymando, Launch it!, NuKit, Quickeys, Quicksilver, RocketShip, Shortcuts, Spark, Twitch
You could also assign shortcuts to shell commands like open -a itunes. open /Applications/iTunes.app/ doesn't seem to be any faster. Scripts like this are blocked until the application finishes opening:
tell application "iTunes"
reopen -- open a new default window if there are no open windows
activate -- make the application frontmost
end tell
Another option would be to use Automator services:

There is a bug in 10.7 and 10.8 where the shortcuts for Automator services don't always work until you hover over the services menu from the menu bar. There is also a small delay before services are run, and the shortcuts are not available in applications that don't have a services menu.
If you have the Powerpack for Alfred 2, you can create a workflow like this:

Changing the trigger behavior reduces the delay for hotkeys:
