"If you can't 'rewrite from scratch' (i.e. write a new app) you probably don't have very good programmers"
A statement like this makes me think you haven't been doing this stuff very long. Software development is a continuous compromise between good engineering practise and business priorities. The skill of your team has nothing to do with it!