Depending on how much work you plan on doing you might take a look at QuickBooks, which can do cool stuff like keep track of all the checks you are writing. If your on linux might want to try: http://www.gnucash.org/
If you want something simple, try: http://bambooinvoice.org/
I recommend against writing your own software. (Although we did write our own timekeeping application -- which we license to another local company)