$: sudo vim /etc/apt/sources.list
Now replace every occurrence of 'etch' with 'lenny'. To be on the safer side, comment out all 3rd party repositories as Lenny is still in testing.
$: sudo apt-get update
$: sudo apt-get dist-upgrade
You might have to do the dist-upgrade step a couple of times till it upgrades no further. I know some people have had problems while trying to do an Etch->Lenny upgrade, but things have been quite OK for me. If you're not using one of the Debian packaged kernels (you built your own kernel from source), make sure apt-get doesn't override your kernel headers. In case it does, and you notice that some of your device drivers are acting up, just go through the following steps:
$: cd /usr/src/linux
(if you don't have the symlink, cd into wherever your kernel is!)
$: sudo make headers_install
Although I didn't have to do the last step, I believe it should solve your device driver issues after your upgrade, if any. Do correct me otherwise.
And yes, almost forgot...