Isso está explicado no FAQ da GPL:
[Usar uma biblioteca GPL no seu programa] implica que você deve liberar seu programa sob uma licença compatível com a GPL (mais precisamente, compatível com uma ou mais versões da GPL aceitas por todo o resto do código na combinação que você vincula). A combinação em si está então disponível nessas versões GPL.
Ou seja, o seu programa que usa uma biblioteca GPL ou AGPL deve usar uma licença tão ou mais permissiva que a versão da (A)GPL que a biblioteca usa. Aqui tem a lista oficial de licenças “misturáveis” com a GPL.
Sim, isso significa que você não pode, tecnicamente, usar uma biblioteca somente GPLv2 em um programa GPLv3, já que a GPLv3 tem condições a mais. Por isso muitos programas recebem licença dupla “escolha GPLv2 ou GPLv3”, ou mesmo “GPLv2 ou qualquer versão posterior”.
Isso também impediria “misturar” GPL e AGPL, mas a GPLv3 tem uma exceção voltada especificamente para a AGPLv3; é a única licença mais restritiva que a GPLv3 que recebe esse benefício.