First of all, I suggest starting with learning. It is very important. You may be able to set up a working pool from a tutorial, but it would be working mainly for the hackers who could profit from your vulnerabilities. I advise you to obtain the amount of experience in Bitcoin-QT, a DB software with its language and web programming where you feel yourself comfortable when you do tasks like synchronizing these things with each other. Some example options could be
MySQL for your DB and
PHP for web communication. When you feel yourself comfortable in the mentioned area,
do not commit the mistake of opening your pool early! The related information security area is a must have knowledge and you cannot really learn it from tutorials since it is always changing.
To obtain an up to date view on the security factors, you should ask an experienced and highly trusted person, but even better if you ask more than one and compare their views to get the truth. Also, this person may suggest or give you a mining pool template and help with the steps of setting the software up and how you are advised to optimize it.
Using your desktop for this purpose would be pretty unwise. I suggest a dedicated Linux server to have a smaller scope of possible security risks. I think Linux is better because it offers more exact customization ( which is better for your optimization too )
So, you need the server hardware ( you may want to make sure it has proper UPS ) and besides that some dedicated mining hardware, ofc. To get to know more about the currently available hardware, you came to the best place, just check out the Mining section on the forum for threads.
Btw, I had the same question under another thread recently and got fine answer. You may find helpful to check out
our discussion. There you also will find some guidance how to calculate with the electricity cost that your pool will feed on.