We are going to make an FTDI cable for whatever reason you might need one, I will use it to program my own ATMEGA microcontrollers without an arduino board. The Arduino has a USB adapter on it bu ATMEGAs do not come with that, and you need to somehow connect those to the computer - this is it. You might have seen them before, Sparkfun carries them, as well as LadyAda. The cost is a bit high and shipping takes time, and most importantly it's no fun compared to making your own.
DKU-5 cable (CA42 also works, I believe Prolific makes those)
4 pin male header
Something to cut and strip wires
Soldering materials (iron, solder, wick...)
DKU-5 is an old Nokia usb cable adapter and has the chip we want inside, no point in going into details right now about that. You can find the cable in ebay, dealextreme or local stores. I got mine from a local store. It should cost around $3 a piece. It's phone end has 6pins and the other end is the USB.
Connect the cable to your computer and find the right drivers for it, it should show up under LPT&COM ports with a port number such as USB Connectivity Adapter COM19. COM19 is the Serial Port you will choose in your Arduino IDE while uploading your programs, note that down as well.
We need to identify which pin is RX, TX, 3.3V (there are also 5V ones) and GND so we cut cable off near the phone end and strip the 6 wires inside it. Now, test the connectivity with a multimeter on those pins and find out which cable goes to what pin. Write those down. If you have a Pinout sheet for the cable, you already have which color cable is RX, TX, 3.3V/5V and GND.
If not, we move on to the next step where we strip the chip on the USB end. Carefully cut away the plastic casing and strip the horrible dark gray plastic off the chip on the USB end.
You will find a PCB with the chip on it. On the PCB, where the cables are connected, you can see the pins labeled as RX, TX, 3.3V/5V and GND. If you are lucky, you'll also fin a DTR cable which goes to your Arduino's reset pin, saving you from manually pressing the reset button everytime you upload a new program.
Now, considering you did not have a pinout of the cable, you can identify which color cable is what, write those down somewhere and get a 4 pin header for soldering the wires on.
Solder the wires on your header and stick them on a breadboard. With some wires, connect the RX to your Arduino's RX, TX to your Arduino's TX, 3.3V/5V to your Arduino's 3.3V/5V and GND to your Arduino's GND.
Launch your Arduino IDE, select the correct COM port & board and open up the Blink example so you do not need any LEDs to test it. The small LED on the Arduino board, next to the digital pin 13 marked as 'L' blinks each second if you upload this program. When uploading your program, push the reset button right after it compiles (it is hard to describe the timing, try different push delays if it doesn't work) and it should work.
Hope that helps :)