Build vs. Buy
I keep being surprised by how frequently I hear clients tell me that a vendor has suggested they "build them a CMS," or by proposals from vendors that include custom building a CMS. I hear people suggesting building their own social networking website. I even occasionally still hear tell of organizations who want custom CRMs.
The web software landscape has changed dramatically over the years. Five years ago, it was full of custom built systems of all sorts - and the "build vs. buy" decision was, I think, more difficult, because the available software to buy was fairly cruddy. (And, for the purposes of this post, I'm using "buy" exceedingly loosely - including purchasing proprietary software, installing open source, or using SaaS.)
But the landscape is different now, and I think that, in some senses, the "build vs. buy" decision is much more straightforward. First, the software available, whether it be open source, SaaS, or proprietary, is much better all round. There are new types of software being developed all the time (like, for instance, the new crop of "Social Network Management Systems" both open source and SaaS, like Ning.)
In addition, the increasing openness of software, whether it be open source, or open platforms like Salesforce.com, means that customizing software to your needs, or integrating different pieces is much more straightforward, meaning it's a lot easier to create exactly what you need by integration or customization, rather than building from scratch.
This is not to say that there is no role for custom built applications. I'm in the process of working with two organizations to create just that. But they are both for quite highly specialized functions. And I've also been involved in projects to create interesting and customized web functionality - but those are being done with adding custom modules to an open source CMS.
From my perspective, exhaust all of the "buy" options: open source/proprietary/SaaS out-of-the-box, customized open source/SaaS, or integration of already existing components, or building modules on top of open source tools, before you take on building something new from the ground up. You'll save money and time, as well as be able to take advantage of an upgrade path as web software changes and improves, meaning you won't have to build whole systems again.