We want a system to plug into that doesn't require hardware and infrastructure but allows us to route calls to different people at different times - smart attendant, etc.
If you want a system that doesn't require any hardware or infrastructure, then a virtual PBX is the best bet. These systems just use your existing phone numbers (cell phones or whatever) and routes the calls among them.
The big player in this space is http://grasshopper.com/ They have been around for quite awhile and have a lot of features for managing calls. They're well known for their reliability and customer service.
I've also used http://www.ringcentral.com/ and they are very good as well. Never had any issues and they support various softphones and hardware phones as well.
I've also heard about a new up-and-comer https://aircall.io/ - But I know very little about them and they look to still be in beta. But you should definitely try it for comparison.