Personally I wouldn't ever use a SaaS for my core business!
With Duetapp or other opensource project for example, I am able to modify the source it. (opensource!=free)
Regarding duetapp, I think commerce and organization should be seperated. But no other invoicing app does that atm. anyway. However I feel that this is the last bit required to make it almost perfect. Basically I would create a clean and modular and payment gateway, so that I can be used by any other app too. Write a little duetapp plugin and voila. Much better than integrating every single payment method manually into system A, system B etc.
I would take POST data, and plug it into a templating system (like Django's), which is using something like LaTeX to define the basic properties of the document and populating with data and logic from Django.
Basically a mix of two markups in one file. Meh, there's probably a better way to do that.
Here's the same, but opensource so that you can customize to your own needs.
http://css-tricks.com/html-invoice/