In a Scrum project, the person in the ScrumMaster role is responsible for keeping the project following the Scrum process. Classically, the ScrumMaster isn't a (people) manager and isn't a technical contributor, because Scrum Master can be a full-time job. It's sometimes the case—especially with teams adopting Scrum organically— that it's difficult for teams to justify having a full-time ScrumMaster, so, for better or for worse, someone on the team needs to assume the role in addition to his other responsibilities.
Facilitation roles such as ScrumMaster are often looked upon by organizations as having low value, even though coordination can enable a team to be more productive. On many projects—especially on small, dynamic teams that can benefit greatly from the low-overhead approach of Scrum—a ScrumMaster might be hard to justify. But, without someone fulfilling the role of "shepherd of the agile process," the team will quickly revert to old habits and not benefit from agile. This leaves two choices: hope that the team can adopt a new method organically without filling a ScrumMaster role, or fill the role with someone who already fills a coordination role in the team and who understands Scrum.
One option is to have a manager fill the role, since a manager’s role generally encompasses both the tracking and facilitation roles. Having a manager perform the role can be problematic, as people-management responsibility conflicts with the ScrumMaster's role of removing roadblocks to a team’s self-organizing, as Johanna Rothman has discussed.
Since the manager is often not the right person to fill the ScrumMaster role, another option is to use a technical leader or contributor. Mixing technical contributor and ScrumMaster roles, while a challenge and contrary to good practice, can work and can even work well if you are aware of and address the issues of this mixed-role structure.