Does the GPL or LGPL extends to apps reusing code under these licenses?
The short answer is that it depends on the context.
And this is my long answer:
About 'your' LGPL app vs. GPL code:
The first test I would consider is linking: is your application code directly linking (static or dynamic) with the GPL component? the answer is technology-specific and may vary based on the language and platform. If yes, there would be some GPL impact. For instance if your app include a GPL-licensed component as a separate unmodified executable that is launched in its own process from your app, then in general there is no "linking" but what is considered normal use of the GPL program. Note that there is no such concept of linking per se in the GPL, but this is a commonly considered test nevertheless.
The second test I would consider is modifications: did you modify the GPL-licensed component? if yes and if these modifications are helping you better interface with this GPL component irrespective of linking, then there could be some GPL impact.
Note there is no general obligation in the GPL 2.0 to release source code that use a GPL-licensed component under the GPL 2.0. Instead I would say that if you answered yes to test 1 or 2 above, then your code would have to be made available either under the GPL or under a license that is considered compatible with the GPL, essentially offering similar freedoms. The FSF publishes such a list. The LGPL 2.1 is explicitly compatible with the GPL 2.0 so you would be fine with the LGPL 2.1.
About 'their' app vs. your LGPL and GPL app:
If someone re-uses your app in their app, would they have to release their app under LGPL or the GPL too?
It depends again: the tests 1 and 2 above would apply first.
If you answered yes to tests 1 and 2 for your app, your app would be subject to GPL-like terms. If they reuse both the GPL and your LGPL 2.1 code in their app, then the GPL may apply for them too, again depending on how they reused your code.
With regards to their use of your own LGPL-licensed code, the same tests would apply with a twist: The LGPL makes implicit distinction between static and dynamic linking and has additional conditions when it comes to modifications.
There, the third test I would consider is static vs dynamic linking: is their application code linking statically or dynamically with your LGPL code?the answer is technology-specific and may vary based on the language and platform. If static, there would be some LGPL impact.
For instance if your app includes an LGPL-licensed native library and they statically link their code with this library, then their code would be subject to the LGPL and they would have to make --among other things -- their source code available under terms considered compatible with the LGPL and offering similar freedoms. Again there is a list published by the FSF.
If their code dynamically links with your LGPL code there in general that would beconsidered normal use of an the LGPL library and the LGPL would not impact their code.
The fourth test I would consider is modification again: did they modify your LGPL library? If yes, the LGPL may apply to their code, possibly depending on the nature and extent of the modifications.
And of course in all cases, even if you answered No to all four tests, the terms of the GPL would still apply to the GPL code and the terms of the LGPL would still apply to the LGPL code each taken alone.
This is a long answer but this is not a simple matter!
/HTH, IANAL TINLA
PS: I made this a community wiki so it can be enhanced...