When are we really ready to move software to production?
First simple/obvious stuff - code has to be bug free. What this means is that after a thorough QA and UAT process there shouldn't be any known bugs left. There might and probably will be some minor unknown bugs, but that's just the way it is.
Now, when it comes to the functionality, it's no longer "it works" or "it doesn't work". It's the opinion of the stakeholders. The more stakeholders, the more opinions. As technologists we'd like to say that we implemented all the functionality specified in the initial requirements. And that might be true, but there were numerous "drive-by's" by stakeholders with new requirements. The project maybe took 6 months and along the way market conditions might have changed. So by the time developers think they have completed the project, stakeholders want to change and add a bunch of features to improve the final product.
The risk here is you can "miss the boat" if you try to deliver a perfect product on the first pass. Think of all the solutions you use on a regular basis. Microsoft Office Products, Social and professional networking websites, Online banking, etc. Were they perfect day one? Of course not, but they had enough important features for you to start using them. Over time, new features and improved functionalities were added and these products matured and became even better.
Just use a Pareto principle (the 80/20 rule) when in doubt.


