I had a project a few years back where I had to generate QR codes, so I wrote my own engine. Then I used the .net framework to impose images on top of QR codes using GDI+. The qrhacker.com site does a great job of putting the elements I did a while back into an easy to use site.
The issue I had with the program we wrote, is that depending on the QR code generation the logo or icon you placed over the image would cause the QR to not render. What I like is how they let you know when you may have caused the QR quality to be out of range. I have just a generic version that generates a QR code based on size quality at tilde32.com/qr.aspx.
QR codes have come along way in the past two years. Part of the reason I created my own generator is that I could validate the quality and also have control when needing to batch the QR generation. Here is the previous post on some discussions on QR codes – http://jimiz.net/2010/12/qr-code-generator-2d-barcode/