Well, this is an often debated topic.
First of all the fundamental difference. Whilst Phonegap & Titanium will both compile to natively installed apps, the vast majority of the UI and functionality of a Phonegap app will actually run in a webview as a local website, so isn't really a native app.
Phonegap allows the widest platform support, but will need to be used with a JS/HTML5 framework such as Sencha Touch or jQuery Mobile, and will generally not be as performant as a truly native app.
Titanium allows an app to be written entirely in javascript but be translated and compiled in native code, thus giving a fully native experience. A major limitation of Titanium is platform support; it kinda only really supports Android & iOS, albeit apparently Blackberry and Windows Phone support is on the way.
If you are looking at dealing with actual OS features, then Titanium is what you need, but if your app isnt majorly intensive on the processor, and you would like cross platform support then phonegap and probably Sencha Touch is probably a better idea.
I would also encourage you to take a look at Xamarin, although it is a commercial offering.
Thanks,
Tristan