Launching a satellite to catch a satellite isn't good enough. They need to launch one to catch 100. Problem is, catching 100 of anything that travels at 7000+ mph in different directions takes a lot of energy. And impacts with anything hard can cause more space debris. They need to use something "soft" to change the velocity and/or direction. Magnets don't interact strongly enough at a distance, or they'd help (provided the forces didn't bring down the garbage collector as well).
Something like a gas cloud might work. Create a cloud of gas in the path of the satellite by releasing something like liquid N2. It's soft enough that it might not create more space debris, and if it's dense enough it could perhaps slow the garbage satellite down enough to cause reentry. One large "cleaner" satellite could store several tanks of liquid N2, allowing it to clean up more than one garbage satellite.
One nice aspect of such an approach is that the decelerating gas quickly dissipates, leaving behind no additional space debris to impact other satellites on similar orbits. I just don't know if it's possible to create a cloud large enough to have the desired effect; especially with larger satellites, it might just change the orbit a bit instead.