There is P2Pool and Pushpool being the two options to get your own pool running.
These provide the backend services, the GUI must be built by yourself with any features you may wish to include.
The former is almost unused at this time, although considered to be more resilent to attacks (such as DDOS)
If you were to consider running a pool the requirement of a very high bandwidth server is needed as it consists of using a LOT of traffic (depending where your located this may be VERY difficult to find)
Building a user base may be difficult but with merged mining it may increase profit for running such an enterprise.
3 – lemonginger – 2011-09-02T19:18:37.540
This is a good discussion about setting up pushpool, various front ends that are available, etc
https://bitcointalk.org/index.php?topic=10321.0
Honestly, though, i think setting up a mining pool with limited expertise is asking for trouble, there are just too many issues to address - DDOS attacks, load balancing, miner efficiency problems, etc