MonoTouch wraps most but not all of the iPhone SDK. So, yes there are things you can't do (yet), but they're relatively few and far between.
Many .Net folks find that they are more productive (at least initially) using MonoTouch, since they can leverage their existing skills. On the other hand, there's nothing like working in the native language of the land, it just takes a little longer. You will have to learn some Objective-C since most documentation out there in the world uses it (and/or C-level CoreFoundation APIs). Objective-C's dynamic nature will feel foreign at first, but you may find it quite liberating once you grok it fully. Having used many languages in my career, I find Objective-C (and the Cocoa APIs) one of the most pleasant development experiences out there.
Finally, there's the now infamous section 3.3.1 of the Apple iPhone Developer Program license agreement. It states that any app that uses a compatibility library (which MonoTouch most certainly is) is in violation of the agreement. Apple can, at their discretion, reject MonoTouch apps. It appears right now that this clause was directed specifically at Adobe's Flash-to-iPhone compiler. Apple doesn't have to enforce this clause for other development tools such as MonoTouch and it appears that, again at least so far, they've chosen to let MonoTouch apps through. For personal projects, this may be enough. Until Apple makes a clarifying statement regarding MonoTouch, I would regard using it as a significant risk for a commercial project.