I will devote a series of blog posts to this topic.
The short answer is that it depends on what problem you are trying to solve.
· Use SQL Server to store data and metadata
· Integration with Outlook and other Office products
· Allow single sign-on with Active Directory
· Rely on Windows Server
· Built on Internet Information Server (IIS)
· Allow documents to be stored
· Use Windows Workflow for automating workflows
· Use Visual Studio as development environment
· Support security groups