I am used to פרעה being pronounced as "Paroh" as it has been for the last few parshot, but I noticed today that in Parshat Bo (Shemot 10:11) it is to be pronounced "Faroh". What causes this change? I assume it is a grammatical rule that I don't know. Is it because of some feature of the previous word: פני?
The letters בגד כפת have two versions, one with Dagesh and one without. It gets a Dagesh after a closed syllable, or in the beginning of a word.
In this instance, the previous word ends with an open syllable. Therefore the פ does not receive a Dagesh.
What of many instances where we see a word-initial פ receive a Dagesh where the previous word ended with an open syllable? The answer is that the above is a simplification. One also needs to look at trup, the cantillation marks. A trup symbol either is disjunctive and thus divides or is conjunctive and thus joins. The mercha symbol on פני in the preceding word is a conjunctive accent, so the open syllable prevents the Dagesh. Were it a disjunctive trup symbol, then the open syllable in פני would not affect the פ of פרעה.