Hiring somebody to do your PR sounds very "non-indie." And it's certainly not likely to be good from a budgetary standpoint -- most indie games do not sell nearly as well as, say, Minecraft has.
For an indie developer with a small (or nonexistent) budget, you probably have to work the grass roots angle more than anything else. Promoting your game on Twitter/Facebook/whatever is an option but probably will not see great results unless you already have a ton of followers or friends or connections, et cetera, from previous successes. Otherwise the handful of people who follow you on Twitter are probably the ones who are pretty likely to buy your game anyhow.
First, make sure your game is reasonably stable and polished (at least in some areas) and then assemble some marketing material -- good, interesting screenshots and some compelling descriptive text to go along with them. Check out what other indie developers, like Jeff Vogel of Spiderweb Software do for their game splash pages.
Then start trying to talk to people -- basically cold-calling them. Useful demographics to target are smaller-scale publications that have a track record of dealing with or promoting indie titles (TIGSource is great, but IGN, not so much for example). See if you can entice them to review your game, or do a preview feature. You might consider suggesting that in exchange for a preview you could offer some promotional codes for the game that the site could give away, and then you have something of a cross-promotion that could be mutually beneficial.
Other indie game developers are a good market to focus on as well: some of them are actually professionals by day, and most of them will have a higher tolerance for some of the rougher edges indie games usually sport and be more willing to give the game a shot and discover its potential. Many game development sites focusing on indies, such as GameDev.Net, also have showcase and announcement forums where you can promote your project.
Set up Google alerts for your products and reach out to people who promote your product without you actually asking them too -- the random bloggers who stumble across it and post about some cool game they found (or about some bug they found with it). This doesn't have to involve offering them registration codes or anything, just a simple email with a thanks or an assurance that the bug has been fixed or is being looked in to -- that can go pretty far in terms of making an impact on people. Hopefully it will be an impact they tell their friends about.
This should go without saying, but make sure your game is easy to get, install, and get into. Struggling to even be able to launch a game is probably the biggest reason many indie games go untouched. It's difficult, not having as many resources, but try to get as many testers for your game as possible so you can ensure it's as rock-solid as possible. No amount of marketing savvy will save a broken product.