Basically Program Managers coordinate and organize team(s) of other programmers. The PM might not be quite as technical as the programmers but usually has a business degree and a cs degree. They normally set up meetings and make final decisions regarding product development.

They are also the ones the other programmers go to when a major decision needs to be made or there is a conflict of what the client is telling them with what is on the spec sheet. Just as the title implies they are the managers of the project/programming team.