A couple of years ago, I downloaded an app for my iPod called JumiMouse+. I found it because I was looking for a remote desktop app to control my laptop, and although this wasn't exactly what I was looking for at the time, it turned out it was better than what I wanted.
In order for the app to work, JumiMouse+ requires a server application, JumiController, to be running on your PC. It can sometimes be problematic connecting the iPod to the PC, but this is usually the fault of the firewall or your router. This app works both internally and externally, meaning your iPhone could be in the same room or in China and it will work just the same.
A few months later, JumiTech released an app called JumiTap, later branded JumiRemotes, which is now integrated into JumiMouse+. This allowed the user to create their own remote controls for specific applications, or download user-submitted remotes from JumiTech's gallery. Essentially, this means you can plug your laptop into your TV and run Windows Media Center using the remote control I made for it. Or you could play VisualBoyAdvance with a Game Boy controller rather than the keyboard. Or you could present a PowerPoint presentation without the need to go and press a button on the laptop after every slide.