I have an old machine running Debian etch that I want to upgrade to lenny without reinstalling. How can I do this?
The Debian project release fairly detailed upgrade instructions as part of the release notes for each release.
See http://www.debian.org/releases/stable/releasenotes. Section 4 is what you are looking for. http://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.en.html is the HTML-section-per-page version of i386 (use the previousl link to find the right version if you use a different architecture).
To upgrade the Linux Debian Stable Etch to Lenny, just need to follow these two steps.
and change all words etch to lenny, or stable to testing
Update and upgrade
that is all, this also work if you want to go from lenny to sid, just change your sources.list accordingly.
It is also better if you start your Debian Linux in text mode, so GDM or KDM could be restarted without problems.