I got a Nokia N900 the other week and I've started playing around with the software.
At heart it runs Maemo Linux which is based on debian, so in theory any software that runs on debian should run on the phone !
Also unlike other smart phones which can be coaxed into running linux, the N900 has a shell out of the box and getting root access just requires a package install and issuing the "sudo gainroot" command.
So far I've found the ssh client pretty handy, and openvpn is available in the maemo-testing repository for all your vpn needs.
In terms of the hardware it's got a variety of interfaces which could be pretty cool for hacking testing. There's wifi and GPS for war-driving/walking and obviously having 3G data is pretty useful when out and about :)
Getting software to run on it, isn't always quite as straightforward as just apt-get, as the repositories don't have the breadth of the debian ones yet. So if it's not already available in maemo-extras/testing/devel then cross-compiling is the way to go.
The Cross-compile environment is reasonably straightforward to get set-up and there's instructions on the maemo wiki for packaging apps
So far I've ported nmap 5.00 across to it, and that runs just fine, kismet seems to run ok but the default console colours make it a bit unreadable, so more work there.
Ruby 1.8.7 is available in the repositories and I've had Metasploit running (albeit a bit slowly).
All in all it's definitely smarter than your average smart phone!