Das Problem löst sich von alleine, wenn man anstatt `\,ff.` von Hand zu schreiben, das von `biblatex` dafür vorgesehene Makro verwendet:
    \cite[221\psqq]{knuth:ct:a}
Entsprechend übrigens auch für eine folgende Seite:
    \cite[221\psq]{knuth:ct:a}
Die Details dazu werden in Abschnitt 3.12.3 *Page Numbers in Citations* im `biblatex`-Handbuch erklärt. Der hier relevante Teil:
> There are also two auxiliary command
> for suffixes like ‘the following
> page(s)’. Instead of inserting such
> suffixes literally (which would
> require `\ppno` to force a prefix):
> 
>     \cite[\ppno~27~sq.]{key}
>     \cite[\ppno~55~sqq.]{key} 
> 
> use the auxiliary commands `\psq` and `\psqq`.
> Note that there is no space between
> the number and the command. This space
> will be inserted automatically and may
> be modified by redefining the macro
> `\sqspace`.
> 
>     \cite[27\psq]{key}
>     \cite[55\psqq]{key}
>
Das Zitat zeigt allerdings auch, wie man den korrekten Präfix erhält, wenn man keine Alternative hat: mit `\ppno`, es gibt auch das Äquivalent `\pno` für eine einzelne Seite. Das Handbuch hat auch ein Beispiel, wo ein Einsatz sinnvoll ist:
    \cite[see][\ppno~37--46, in particular \pno~40]{key}
Die vier Makros im Überblick:
Überblick (genauer beschrieben in Abschnitt 3.7.8 *Miscellaneous Commands*):
 - `\pno`: erzwingt einen Einzelseiten-Präfix im `<postnote>` Argument eines Zitierbefehls.
 - `\ppno`: wie `\pno`, aber für einen Seitenbereich.
 - `\nopp`: unterdrückt alle Seiten-Präfixe 
 - `\psq` (*page sequens*): Seitenbereich von zwei Seiten, wenn nur die erste gegeben ist – im Deutschen üblicherweise `f.`. Der dazugehörige *localization string* heißt `sequens`.
 - `\psqq` (*page sequentes*): Seitenbereich von mehr als zwei Seiten, wenn nur die erste gegeben ist – im Deutschen üblicherweise `ff.`. Der dazugehörige *localization string* heißt `sequentes`.
Alle fünf Befehle sind nur in Zitierbefehlen und der Bibliographie definiert.