Agile coaches and Scrum Masters are very similiar in concept. The main difference between the two is the level in which they operate. Scrum Masters will typically work within a single team where an Agile Coach works within the organization at various different levels.
Both of these roles must be comfortable giving unpopular advice to their teams and leaders. This role is critical in developing how software is used and implemented. They will work with stakeholders to identify what software is needed to prioritize when it is implemented.
The most important part of this role is communication. They will need to listen and be able to give effective feedback back.