Free Software Highlight: GnuCash
Not everyone likes doing double-entry accounting... including me. But I do it anyway, because after squeaking by my accounting classes in college, I now know that there's no better way to get a handle on your finances. I'm pretty sure if I wasn't keeping track of every dollar I spend, I'd have a much tougher time deciding whether or not I can afford purchases.
Given my penchant for software freedom, I was happy to find a few years ago there are some free/open-source double-entry accounting options... I went with one called GnuCash, which aims to be a Quickbooks replacement (though I actually prefer it to Quickbooks now that I'm used to it, because it's more straightforward for my use-case, personal finances).
As with many accounting programs, GnuCash gives you a "single account" view of your transaction journal, which means you only have to enter one side (debit or credit) of each transaction, and it ties the other side to whatever account you have open. Sometimes, though, you have to do a transaction that affects more than two accounts, and in those cases you can hit the button labeled "split" which expands the transaction and lets you enter a general-journal style transaction. You can also open up your full journal directly if you want to just see everything (often in software called, incorrectly, the general ledger).
GnuCash also has a nice report building system that uses the Scheme language (a dialect of Lisp)... fortunately you don't need to learn Scheme for reporting because GnuCash has lots of useful and customizable reports built-in, like an Income Statment, Balance Sheet, Cash Flow, etc. Additionally you can set up "automatic" transactions that enter themselves into your journal on a regular schedule you specify (for example your paycheck or automatic bill payments). There are other features that I seldom use but would be great for a small business, such as a customer/vendor database, invoice generation, and online banking support.
So before you drop any money on an accounting program, give GnuCash a try... It's free and cross-platform (Linux, Mac, Windows).