As far as setting up a business intelligence system goes; one thing is certain, you will always need a table to host your Dates Dimension.
Below is a simple example of a date dimension.
It uses MSSQL partitioning feature to split the data by months, I have found it to be helpful in avoiding 'hot areas' in the disk. These are caused by having the same portion of the disk accessed constantly, and that becomes more relevant if you are writing as well.
It is possible to improve performance further by populating this table with all required information and then setting all filegroups used by it as READ-ONLY. Furthermore, this table can be relocated to a different disk then the one used to store your fact tables.