I know I'm a little late to the party here, but thought that if anyone else needs help with this, I would provide some insight. I've created a little example of how to use DTCoreText to take a HTML file in NSString UTF8 format, and render it into a paged PDF context. The example only renders text with basic CSS formatting at the moment. The nice thing is that this renders real PDF raw text in the document, not rasterized images as you get with the UIWebView alternative. The code saves the PDF file in the app's documents folder under a unique ID string, and hands back the path to this file from the class methods.
You can get the full source of my sample app here:
https://github.com/ocrickard/OCPDFGen
This little library took me about an hour to slap together originally for an app I made last year. Most of the apps I do are for engineering enterprise applications where connection to a server is almost never available (think tunneling, oil exploration, etc.). If your app can depend on a data connection, and your files aren't so large that your users aren't waiting too long, then obviously the server-route is optimal because it can handle more complex HTML elements.
EDIT: Forgot to mention that it may be possible to implement more features of DTCoreText like simple image rendering, etc. My uses don't require it, so I haven't looked into it much, but I'm sure you could look at the DTCoreText CoreText frame-setter and formatting engine to quickly learn how to use their code...