rs232 transceiver circuit
FvM is correct when dealing with dedicated UARTs. However, if you are using a microcontroller and are willing to do a bit-banged serial communication in software without using the dedicated UART in the micrcontroller, then no transistors are required.
This is possible because you can write the software to do the signal inversion for you. Then all that is required are some series resistors on the data lines to limit the current. Some designs also use clamping diodes to keep the pins from exceeding VCC and gnd. However, really cheap designs make use of the protection diodes built into the microcontrollers.
To use this approach, the baud rate needs to be fairly low, the project needs to be very sensitive to cost, and the microcontroller needs to have available processing bandwidth to support the software UART.
For hobby circuits that you will only make a few copies of, I would suggest sticking with the MAX232 or similar IC. The is the most robust. Even the two transistor version requires stealing voltage from the serial port. It works on many computers, but has been known to fail on some laptops.