These days I prefer wordpress over joomla, but both are excellent cms solutions with plenty of modules, available templates, huge communities and receive regular core package updates.
Though both can be overkill for small businesses. If you require a simple solution for a small site, then a flat file cms based solution that doesn't require a mysql database could be a good alternative. i.e. Admin panel to manage pages and a small selection of modules for SEO, backup, page editing etc. These tend to have smaller communities, less modules etc. However porting templates to these isn't rocket science. Plus flat file cms sites depending on your web page content can load pages quite fast compared to sql based sites. Load times are now taking into consideration by google for indexing I believe. Couple of small cms packages are nanocms and razorcms.
Another cms worthy of a mention is website baker. It uses a mysql database and is quite easy for novices to use once setup. Been around for quite a while and has quite a good size community and a decent selection of modules, though not as many as wordpress or joomla.
I wouldn't go for any cobbled together custom cms solution provided by a website developer. Something with a community and a team moving the cms forward.
Plus as well as considering what your requirements are today, but also what you may require later. Though porting websites isn't hard, just time consuming. If you know you may need a shopping cart or newsletter modules for instance at a later date, go with a cms that has a decent selection today to choose from. Though that isn't foolproof depending on cms and module updates over time and what actually is available and compatible when you need it.
As well as considering SEO etc, make sure security is a priority also. For instance you can sign up to be notified of joomla updates. Then once in a while they send you an email telling you of updates. Updating wordpress is quite easy also, usually via the admin panel in a web browser. Even if that presents an issue, the manual method doesn't take long either (though involves ftp access).
Plus install a backup module asap. Corrupt databases, host issues, old revisions of data accessible when required etc. Make sure you have backups available. Very easy to implement for joomla, wordpress or nanocms for instance. Then all your hard work and shiny new website powered by a cms isn't lost if an issue occurs.
Good luck.