I am just a teacher that has read the moodle forums. The following should be taken with large pinches of salt.
"What spec will the server need to be?" is quite a common question but it is tremendously difficult to answer because it depends on so many things (for that reason those that know may reticent to answer, so you are getting an answer from a dunce like me):
1) How many users are going to be using the server simultaneously. Even if you have a school or university of 5000 people, the critical question is how many of them will be using moodle at the same time? Situations where many users use moodle at the same time include
1.1) Synchronous distance learning
1.2) Class tests from a school computer room(this is the scenario that I have heard the most about)
1.3) Classes that take place in the computer room, as opposed to classes that take place in a lecture theatre and require students to download materials, and take part in forums, and do tests for homework. In the latter case students will use moodle at all different times of day resulting in a much lower synchronous load.
2) What are the resources that that you will be serving to students? Php and moodle are quite server intensive but not as much as streaming large images, ppt files, or audio and video to a large number of students simultaneously. If a class of only 30 students, and these could be the only users of the system, wanted to download the same 30Mb video file at once then you may need a server array.
3) Which of the more processor intensive moodle functions will you be using?
3.1) Moodle chat. Sorry folks but all the people I know that have used moodle chat in the past (and I am sure that moodle chat is getting faster all the time) have reported that 30 students in the chat rooom at once causes problems. I am not sure of the moodle chat daemon options these days but if you are as yet unsure of server to user ratios, then disable chat at first.
3.2) Filters, particularly auto-linking of large glossaries. Moodle has some wonderful filtering capability to automatically link words appearing anywhere in the site/course to a glossary. But when glossaries get large then this can cause problems, especiallly if you set the caching time to be small - i.e. if you want the filters to take effect soon after the addition of the resource/forum post etc. This is generally not a problem for most users with a glossary of words for a typical content course. But if you attempt to autolink a glossary that is effectively a dictionary for a language course (with more than one or two thousand entries) then this can become a problem. Again, consider disabling glossary autolinking until you are aware of the limits of your server, and increase the cache time.
3.3) Messaging. When Messaging first came out on moodle.org it cause the server to slow down as everyone said hello to everyone. Consider recently posted hacks to allow messaging only to teachers, or at first, disabling messaging.
3.4) Backup. Make sure that automated backups take place at the small hours of the morning. Be aware that if a teacher manually presses backup, to copy a course for instance, that the load on the server will peak to the extent that the user/student experience may suck.
But back to your question....from my experience
Memory is cheap these days so get lots of it - 1GB at minimum. Why not 2GB or more?
Pentium speeds seem to be levelling out. 3GHz Pentium might cost a lot less than a 3.5GHz pentium, or whatever, I am not sure what the latest is these days but no need to speed a load of money on the latest for only a marginal increase in speed.
RAID is, as far as I am aware (oops seems I am wrong) for security not speed. Get RAID for security, but also be aware that if the RAID chips fry then the security measure is counter-productive. Thusly I have had 2 bad experences with RAID (cant remeber which number, the mirroring kind). Software RAID was recommended to me.
Hard disks are cheap these days, so get as big as they come (this again will depend on the sort of resources that you are going to be feeding to students) but go for durability. Ask your local boffin about the most durable hard disks. I do. 200GB? This has little to do with speed, little to do with moodle and everything to do with the resources that your teachers want to serve their students.
Consider putting the database server and the html/php server in different boxes. Rather than the top of the range server (an extra GHz of processor speed, fancy RAID) consider two 3GHz Pentium boxes with lots of memory one with MYSQL the other with your server would be a good move.
Apparently php accelerators (software such as Turk) are cool and really improve php speed but I bet that they have learning curve drawbacks. Check the forums for this.
Linux works better than Windows with Moodle. Check the forums for proof.
People who have Linux server arrays swear by them. Even two cheaper computers in an array is better than one fast one.
I always find that the power supply goes first on all my computers (or that the power supply instability causes the hard disks to die) so I always spend money on getting the best power supply that has durability, and takes mains voltages fluctations in its stride.
LOTS of Memory
Not the very lastest Pentium
Dual Pentiums seem to be no great shakes from my desktop experience!
Hard disk size depends on other (non-moodle) factors
RAID is up to you. Backing up database and files using software or even manually once a day is almost as good (sometimes better).
Arrays are cool but just putting the database and apache/php in different boxes is easiest and, my recommendation. It is what we use.