I lucked out and found somewhere to hire me full time eventually so I don't work for myself anymore, but I like have other people do the hard paperwork.
I'd recommend specifically knowing how educated your clients are, knowing how to effectively communicate on their grounds, and knowing how to get to them with advertising. Of course being good at what you do is important, but you'll still go nowhere if you can't do the above. (Also, I find that being a nice software designer pays dividends; nobody wants to hire the jerk)