I'm going through this process now myself.
You need a Mac, a device (I'm using iPod currently), the free Apple Developer account, the (at least) $99 license, and the Unity iPhone license too. Oh, and a TON of patience, did I forget that?
The free SDK contains the XCode program, you need that, but you don't need to do very much with it, except that provisioning nonsense.
The hardest part for me was getting 'provisioning' working. Apparently, you need to create a certificate. With that certificate and your device's serial number ID, you create a 'provision' that will let it install onto the device. Mess this up, and you might as well delete any attempts you'd made, they'll just gum you up.
Also, you should be aware of versions, both hardware and soft. Your device, your SDK, your compatibility levels (both in xcode and Unity) should all be on par, or it won't work. I had to find an older version of the Apple SDK (which Apple does not make easy to find), until I was allowed to update the device (mine's borrowed). What fun!
The Unity Remote app is cool, but the game is running on your Mac, not on the phone, so don't be fooled. Getting it running natively on the device is trickier. You have to really be careful about poly/texture size and so forth. And (version 2.6) it's based on a different version of Unity, so some scripts won't work (google for work-arounds, they're out there). I'm currently stuck at it not loading my scene, and I don't know why. It runs on Mac remotely, but not device natively.
Also porting any project to another means, probably, your scene will be completely disconnected. I've been working feverishly on scripts that will help repair that condition, because it took me a lot of work to get things right on my PC version, I can't start from scratch for iPhone. Lesson: start on iPhone, it's easier to add things to the PC version later.
I've basically shelved trying to get it all working on iPhone in anticipation of 3.0 where it should all just work much nicer. And, I'll be doing Android too. My experience: Android is MUCH MUCH simpler to work with, I hope that remains true with Unity3d/Android.