The modern German language developed out of Old High German from a Proto-Germanic (PGmc) ancestor, which in turn developed from Proto-Indo-European (PIE) (or Indo-Germanic as it is called in German).
Proto-Indo-European allowed *P as an initial consonant in words; cf Latin pater, traced back to PIE *ph₂tḗr
At some time in the first millenium BC, a Germanic tribe's dialect separated itself further and further from Proto-Indo-European to give Proto-Germanic. This came with a number of sound changes. For our example, it is important to note, that word-initial PIE *P would change into PGmc *F. Thus, the word for father turned into *fadēr
There was another consonant shift around the same time, turning PIE *b into PGmc *p, however that one was usually mid-word. Not that there are exceptions: The word platzen seems to derive from PGmc *platjaną which in turn derives from PIE *b(e)lad- or *b(e)led-. This word should have taken part in the second consonant shift, turning p into pf, but likely the modern-day word was taken from Low German, which mostly ignored that shift.
So most 'original' Germanic words would have lost any initial *p originally present and turned it into f, while only a few original *b would have migrated back into p.
Words that entered Germanic from Latin early would end up having pf as starting consonant due to the second consonant shift (cf Pferd). Words that didn't enter German until the Middle Ages didn't take part in that shift and kept their original *p, e.g. Pein from Latin poena or Papier.
Splattne's example of pereg and paum are due to the unstandardised early orthography. The sounds used in those words were most likely /b/, which the write chose to write with a p because he could. If they aren't /b/, it would require a change from *b to *p and then back to b, which is highly unlikely.