Normally, GNU packages should use the latest version of the GNU GPL, with the “or any later version” formulation. See License Notices for Code, for the exact wording of the license notice.
Occasionally, a GNU library may provide functionality which is already widely available to proprietary programs through alternative implementations; for example, the GNU C Library. In such cases, the Lesser GPL should be used (again, for the notice wording, see License Notices for Code). If a GNU library provides unique functionality, however, the GNU GPL should be used. https://www.gnu.org/licenses/why-not-lgpl.html discusses this strategic choice.
Some of these libraries need to work with programs released under GPLv2-only; that is, which allow the GNU GPL version 2 but not later versions. In this case, the GNU package should be released under a dual license: GNU GPL version 2 (or any later version) and the GNU Lesser GPL version 3 (or any later version). Here is the notice for that case:
This file is part of GNU package. GNU package is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see https://www.gnu.org/licenses/.
For small packages, you can use “This program” instead of “GNU package”.