I've been using a Garmin Forerunner 201, which uses GPS to track distance. It doesn't track steps or anything like that, but it's very accurate. It also keeps a really good log of distances, calories and various activities, and it can be exported to google earth so you can see where you walked! The main downside is that it isn't cheap.
I also have an Oregon Scientific pedometer which tracks distance, steps etc. It's fairly accurate, and quite small. I have used cheaper pedometers and never been very pleased with them.
Also, I have another pedometer which is just a dial with a pointer on it. No batteries needed, and all it does is tell you distance. It's amazingly accurate, but has no other functions than distance.
Generally when making that sort of purchase, I buy the item a few steps down from the very top of the line model. Don't bother with a super cheap one, it will just be annoying.