I used HTMLDoc in the past it did a good job of turning HTML tables, images etc with some basic formatting into a decent PDF report. There also seems to be an open source version as well.
iTextSharp renders html at a basic level.
I found that hacking in a simple HTML renderer allowed me to offer PDF functionality immediately and then i had to backfit a PDF report renderer later. This should be pretty simple if you keep your presentation layer separate from your data and business logic.
I used PDFlib then but both iTextSharp and PDFlib are awesome libraries for programatically creating PDF from your data sources.
I haven't seen a perfect HTML 2 PDF renderer yet, so i would plan for a two stage approach. You may also want to look at this question for other options.