The LGPL v2.1 is specifically designed for libraries; in particular, it allows distribution of modified versions of the library only in certain circumstances (section 2), including
The modified work must itself be a software library.
However, you can distribute your library and its associated programs under the LGPL, because section 3 of the LGPL allows it to be upgraded to standard GPL (version 2 or later). Thus a recipient making changes and wishing to redistribute them can do so either under the LGPL or the GPL, whichever is appropriate. (After distribution occurs under the GPL though, further distribution of modified works on top of that can only use the GPL.)
Having said all that, using two licenses within your source code isn't all that complex: all you need to do is include both the LGPL and the GPL, and make sure the source files' headers indicate which license applies to them (as explained at the end of the license documentation).