I am an advocate for the "specific system for a specific function" school of thought as opposed to "we will buy in a very expensive ERP system and customize our whole company around it". The latter tends to force a company to change its business processes to be closer in line with what the ERP can handle rather than find a system that is a close match to requirements. Also they both end up in an imperfect situation.
What I really prefer is customisable COTS systems that are best of breed and have an open API to the data because it is assumed that the data is the purchasing business' (as opposed to the supplier's or their system's). This leads to a system that is easily replaceable because it is isolatable but not necessarily worth replacing because it does, or at least it should do, a reasonable job. This also allows for bespoke development of systems to integrate with an enterprises' business systems ecosystem where there is no COTS software applicable.
I guess this boils down to "although I love coding, I must only code what I have to". Reuse, support, maintainability, etc. are the cornerstones of my opinion.
This follows on from how I develop systems; I reuse off the shelf components as I wouldn't dream of implementing a RDBMS, for example.
-- Stop your grinnin' and drop your linen...they're everywhere!!!