I realize the answer can be, "it depends" and I know that this is somewhat of an open question.
I am trying to size domain controllers for an office that currently has 30 people but I want to allow growth for 50 people and I want the machine to last for 5 to 8 years. The DC would provide basic Active Directory services. The remainder of the environment would include:
1 application server, 1 SQL server and 1 web server.
Print an and file services would remain on the app or sql server.
If I needed to put in Terminal services I think I would put these services on the app server.
I don't think I need any monster server to perform these functions but I feel when I go to any major mfg. they will want me to purchase something over sized.