One end plugs into a controller port, the other end goes to a PC's serial port. Then you run a terminal program on the PC, from there the NES can write to the PC's screen and get input from the PC's keyboard.
There's some subroutines an NES program can call to do file uploading and downloading, also routines that just get a byte from the port or write a byte to the port (with various baud rates). Everything it can do with that is up to what the developer wants to do with it.