I have been using microchip's C18 compiler for the 18F series, because there's a free student version, and it's sort of the standard compiler; it's got a large user base and thus more example code out there.
but of course there's no free microchip C compiler for the 12F and 16F series... For these PICs I highly recommend BoostC. I personally own a full license and don't regret buying it at all, but I also haven't actually hit the limitations of the free version yet! so if you are doing small projects, you can probably use BoostC completely free (or buy one of the cheaper licenses to support the developers), and unlike some compilers, the free version is not limited in any way other than code size (which I believe is 2k for the free version)
and since it's so cheap even for a full license, it's a good language to get started with so you can actually afford it down the road if you need it for bigger projects.