A couple friends have asked about iPhone programming since I yammer on about it all the time. They were wondering if they could get a taste for what the language (Objective-C), frameworks (iPhone SDK) and API (Cocoa Touch) would be like to use. So here is a short answer to that:
If you are a C/C++ programmer, you should have no trouble moving to Objective-C once you understand the messaging scheme they use. Print out a copy and review the definitive guide to Objective-C 2.0 (latest version). I've found that reading lots of code examples (Apple's and those supplied by others online) has helped me understand Objective-C better.
I think it would be helpful to start digging into some of the general documentation regarding the fundamental design patterns used throughout Cocoa and iPhone programming. Cocoa Touch being the OO API for the iPhone and Touch.
Wiki might be a good start for an overview (http://en.wikipedia.org/wiki/Cocoa_(API)) and then I would definitely dive into the getting started docs on http://developer.apple.com/iphone/ Starting with the Cocoa Fundamentals Guide and moving onward from there will give you a good understanding of how applications run on the iPhone. Many of the Apple guides have references to other prerequisite whitepapers, tutorials, and guides to read first or to continue learning in a particular area. These have been a ton of help to get me immersed in iPhone development.
As well, I would say take a look at the Matt Gemmell's iPhone Development Emergency Guide
Hope that helps you get up and running.