To elaborate a little more on what LoRD said:
SYN = Synchronize
ACK = Acknowledge
The initial TCP connection to a computer, affectionately known as the "three-way handshake", goes like this:
You send a SYN packet to a computer, which is like saying, "Are you there?"
The computer responds with SYN/ACK, which is like saying, "Yes, are you?"
Finally, you send it just ACK, which is like saying, "Yes, thanks"
(Think about that commercial for some wireless company, "Can you hear me now?" "Yes" "Good.". It's basically the same thing)
Every time a SYN packet is received, the computer gets ready for a new connection. It allocates some space, initializes some variables, and whatever else it has to do.
If you send it lots of SYN's all at once, it's going to take a lot of processing time/space to look after them all, and often, they start to get dropped. If you continually send it lots, when a legitimate connection is made, the legimate connection might be dropped (ignored) because it just doesn't have enough space to process it all.
One nice thing about this attack is that you don't actually need to send it with the proper return address. If you forge the return address, then the computer you're sending the SYN to will still build the connection, but it will reply with the SYN/ACK to the wrong place. But who cares?
As LoRD said, the idea ISN'T to consume bandwidth, it's to consume resources by trying to build lots and lots of connections.