As an application developer I sometimes get a little frustrated with some attitudes towards functionality. There is all too often too much temptation to throw in as many different aspects and functions to a design rather than to focus on streamlining the user experience for the core of what you're developing.
As an example, you might have a resource booking system; just because it ends up having certain functionality that allows users to communicate with one-another, it doesn't mean that it should have full social interactivity built-in.
Another example might be if you're adding WYSIWYG editing to content areas, then does the client really need to be able to choose purple text in "Comic Sans", and add images anywhere in the content? Do they really need to be able to add nested tables?
It's a case really of evaluating what actually adds real value to the end-user (not you, or even the client), rather than what might add extra cost or something else that you could sell to them. It might also be that the client is asking you to do add spurious functionality, and it doesn't always actually make sense to add it just because they think they need it.
Often someone who wants a new website will start to look around at what other websites to, and want to take elements of what they do. Sure, some of those bells and whistles will be appreciated by some visitors, but do you really want to be faced by a myriad options, and a smörgåsbord of links on a website you've never seen before.
To look at it another way, try to think about what websites have been the most successful (and also how they may be starting to get it "wrong"):
So I do believe that the message is to focus on only one or two main points of your design, and only consider additions if they are truly adding value to the end-user. Those extra bits and pieces may seem cool at first, and they may draw users in for curiosity, but as soon as the novelty wears off you really just want to do what you need to as quickly and easily as possible. It's much better to streamline that key USP, and make it as simple and effective as possible for the end-user to get from A to Z.