For grammar and spelling, I use Microsoft Word's grammar checker. But when it comes to proof reading for a whole paper in terms of ideas, how the words flow, how I structured it, I'd rather get another person to do it.The main problem in proofreading your own writing is:
a) You will keep finding things you're not pleased with and will resolve to re-writing something a million times even though that paragraph probably is fine as it was before you ever think of re-writing it.
b) You never see the problems in your structure, or the way you word something, because you wrote it and YOU think that part is good. However, after a few people look at your paper, you usually get feedback about a bunch of things you never thought could be problematic.
I hardly ever have money to spend on those proofreading services, so I pass it to my friends (from my major and other fields too) and they'll give me some feedback that I find very useful (most of the time anyway).