I added SD to my 'guino, using
Arduino Forum - SD card read/write with Arduino as my starting point. Rather than using all those 3300 & 1800-ohm resistors, i used a single IC (74HC125N i think). Someone somewhere said newer SD cards may not work with the resistor method. A 3.3v regulator may also be required, though my arduiino has it built-in via the FTDI chip.
The nutshell: it uses digital pins 10-13, which are currently in use by the LCD, so i had to rewire the LCD in 3-wire mode, which also requires an IC (74HC164 or equiv).
Hardware cost: as low as $1.00 for the 2 chips. I built 2 different card slots, one using a microSD-to-SD adapter; for the other, i salvaged a SD connector from a junked phone or something. My guino was cut, desoldered, and resoldered, though it would have been preferable to build one clean from the start.
Memory requirements are roughly 2.5k eeprom for code, 520 bytes RAM (including the 512b r/w buffer).
Data portability: a little tricky. My 168 didn't have room for the full FAT library, so the guino has to maintain its own filesystem on the SD. Data needs to be extracted by scripts on your PC. Not the end of the world if you're a hacker type, but definitely not grandma-friendly. Card size limit is 2gb. SDHC support would have complicated things a bit, and like dcb said, you get
eons of logging on the small cards.
I had started writing up a post detailing the 3pin LCD and SD stuff some time ago, then v0.86 was released, and i didn't know if/how the addon would fit in, so i dropped it. I'll try to post it up if there's any interest, and when i get the time. I also haven't been using the SD, as it's on my spare 'guino, which i haven't figured out how to install in my TDI Jetta A3.