Invoicing that let's you structure invoices as hourly, lump sum, or percentage of construction cost. The ability to use a combination of invoice styles is a plus, but may not be critical if you only use one type of billing.
Variable billing rates. We charge different rates for the same person depending on whether it is a few hours of consulting (higher), or an hourly rate for all of basic services (lower), or for additional services (in between). If you can't vary these rates by project, then you may have to reset the rate in the system between each invoice.
Sales Tax set-up in billing. Although we are not required (yet) to charge sales tax on services, we use this feature to charge a 'tax' of 3% for incidental in-house expenses. This is much easier than tracking plots, photocopies, postage, local mileage and billing them as reimbursable expenses.
Time entry system that can record whose time, which project and what task in addition to the number of hours.
Expense recording that includes which project, the expense category, a description, which vendor, and the ability to bill the expense to the client with markup. Ideally this last criteria places the expense on the invoice too.
Distinguishing between paid and unpaid expenses lets you manage your accounts payable.
Importing of expenses and bank entries. This can be a big time-saver and eliminates typos.
Running reports that include profit and loss at a minimum, but the more the better. Others that come in handy are Trial Balance, Balance Sheet, Expense Detail, Project Detail, Time Detail, and Client Listing.
Integration with other applications. Basecamp is an example. Many bookkeeping services integrate with Basecamp and can import clients and time kept in the Basecamp system.
Online payments supported. You can get paid faster, if your invoicing system can accept PayPal or similar payment services.
Team-users so contract labor providers can enter time directly. Besides each employee being able to enter his own time in the system, it is nice to have any contract employees do the same.
Accountant access means that you can set up your accountant to review your books online and make the occasional comment or correction.
These are the main bookkeeping tasks that you would need or in some cases want. Payroll is not mentioned here because the complexity of doing your own payroll requires more manpower than you can justify until the size of your staff grows to over 25 in my opinion. Even then a payroll service makes everything easier.
Next Up: Bookkeeping Software Comparison