We tried out a handful of communication tools including Slack, Microsoft Teams, and Google Hangouts Chat, before settling with Mattermost.
The customisability offered through your server's system console is unrivalled and in some ways overwhelming with the sheer amount of options that you're provided with.
All communication tools share 99% of their UI with each other, and Mattermost is no different, but that's not a bad thing. It also seems to have a less cluttered interface than the others we had tried, although I can't pinpoint the specific design choice that is the reason for this.
The fact that we can have control over all of our data (we're self-hosting it through AWS on a single EC2 instance) is also a great plus which none of the options that we looked into offered.
We chose RocketChat over other communications suites like Cliq or Slack mainly because we can self-host it on our own infrastructure. Since we have quite some projects going on which demand that we stay in touch with a lot of different stakeholders, pricing was an issue, too. With RocketChat, we have a huge set of features basically for free, RC offers apps for all major devices and systems and overall, we're very happy with it. The only downside is the limited amount of apps and integrations, but we can make due with what we have available.