Just finished a few days training on 3CX systems, and a very interesting two days it was. The trainer William has a distinctive style and great dry sense of humour that kept everyone engaged.
3CX is a windows base IP phone system. In the simplest terms for a small office you install 3CX on a desktop PC, sign up to a VoIP provider (e.g. VoIP Unlimited or Spitfire) plug in a few IP phones to your Ethernet, configure, provision and away you go. As it's all IP based you can get a phone number in any region of the UK or any country for that matter. So office based in Scotland, but clients all in London, or France - get a local number to your clients and you are only paying for 'local' calls. 3CX can go all the way up to a multi-location offices / call centres with thousand of agents. If you want to get fancy there are APIs and custom programmable elements to build your own digital receptionist, the kind that ask for your account numbers, report information from your account after you authenticate etc etc.
You can also get an app on your iPhone/Android to be able to make calls over 3G data or wifi via your 3CX PBX. Although if you want total flexibility on remote mobile access you do face the difficult decision on how to deal with security threat of opening a port for SIP traffic on your firewall to the public internet which is not a great idea.