There are a lot of programmers, with RS232 and Parallel Port interfaces to the PC.
1) RS232, some of those are:
1.a)
**broken link removed** this uses an ATMEGA8535 and one ATtiny2313
1.b)
http://electronics-diy.com/avr_programmer.php this uses only discrete components, and is easy to try in a breadboard.
1.c) There are a lot of serial ICSP ATMEL programmers, just use google.
2) Parallel Port:
2.a)
http://www.lancos.com/e2p/betterSTK200.gif this is the programmer i'm using now, it works with Pony Prog, but sometimes it doesn't work, but works almost perfect with AVRISP from kanda (Free software).
3) USB:
3.a) yes, you can connect the ATMEGA8 to the USB using the right firmware, check it here:
http://www.fischl.de/usbasp/.
This is not a Free programmer, is free to home use, but yo can't sell this one for others.
In the software side, there are a lot of them, some of them works with one hardware and others don't. So before make any board, read the documentation of the software, search in forums and so on.
Some of them are: AVRISP from kanda (Now free), AVRStudio, PonyProg, etc.
Before making anything do a research in internet to see the supported devices, the software it uses, if it uses a micrcontroller, you need another programmer, etc.
I hope this help.
Regards