Different organizations define it in their own way, but project management is the latitudinal view of a single project whereas program management is the longitudinal view of multiple projects.
What makes them fundamentally different is that a project, typically headed up by a project manager, is generally designed to achieve a particular outcome. As such the project manager is concerned with the granular tasks composing that project and meeting the expectations of scope, budget, and schedule. A program, on the other hand, is generally designed to have a direct connection to the overall corporate strategic plan. Composed of a series of similar projects, the goals of all projects within the program are typically consistent with one or more enterprise level strategic components.
Another difference is resource management. Project managers are concerned with over and/or under allocation of resources such that individual tasks can be achieved and resources can be fully utilized. Program managers are concerned with resource availability. If a particular resource is already scheduled for a task on project one, the manager of project two can't schedule that same resource at the same time for his/her project and the program manager is typically responsible for reconciling those conflicts.
MS/Project is the industry standard for project management, not because it's so good but mostly because of the ubiquity of Windows. It's not horrible but it is deeply flawed. It does have a companion product, MS/Project Server (or MS/Enterprise) which provides the program management perspective.
Program management is also sometimes called portfolio management. It's a sub-discipline of project management but does require specialized training and experience. The Project Management Institute (www.pmi.com) is the de facto certification organization and the keeper of the PMBOK (Project Management Book Of Knowledge).