I used FOP to handle XML to PDF conversions for a client. It worked quite well but I had to avoid certain XSL-FO tags that FOP does not implement. See this compliance document for the current state. The FOP has a VERY active mailing list and a helpful community.
I found the "Definitive XSL-FO" book by Holman to be a great reference, but the binding is way too stiff to behave right on the desk so I had it rebound by Kinkos in a lay-flat binding.