Tunneling is the concept of encapsulating one protocol inside another, in particular (to me, anyway) in violation of the traditional OSI reference model. For example, pushing SSH (a layer 7 or application protocol) over HTTP (another layer 7 protocol) is an example of tunneling. SSH provides "port redirection", allowing the tunneling of arbitrary protocols over tcp (a layer 4 protocol). Dan Kaminsky (http://www.doxpara.com/) is well-known for demonstrating the tunneling of arbitrary protocols over DNS.
The important point, in my opinion, to take away is that if you have the ability to transmit arbitrary data over any protocol (HTTP, DNS, and SMTP are some obvious examples) and you control the remote endpoint, you can manipulate the format of your data such that you can tunnel any protocol. The logical extreme of this that you can, as the saying goes, tunnel IP (or gopher, or SSL, or Bluetooth L2CAP) over smoke signals.
Another point is that tunneling is most definately not the same as manipulating "well-known ports" or their equivalent. For example, pushing HTTP traffic over TCP 53 (to 'simulate' DNS by, for example, exploiting a hole popped for DNS in a firewall) is not tunneling. However, breaking HTTP traffic into small chunks, encoding them in well-formed, legal DNS packets, and tramsitting those DNS packets over TCP 53, and then decoding on the far side is an example of tunneling.
While tunneling is traditionally applied to network protocols, it has a logical corollary in any other means of transferring or storing data. File formats are an especially obvious example.
Consider the case of the bitmap (.BMP) file format. Use an image editor to make a one pixel by one pixel BMP and take a look at the resulting file in a hex editor. With a reference to the BITMAPFILEHEADER and BITMAPINFOHEADER structures (take a look at wingdi.h or http://www.fortunecity.com/skyscraper/windows/364/bmpffrmt.html), you have everything you need to know to understand the format (at least, in its simplest incarnation). The fun part about this is that the actual data is a bunch of RGB values representing the series of pixels.
Nothing prevents you from writing any bytes you'd like as the image data - a text file, a Word document, an executable - anything at all. Of course, the image will look like noise, with obvious blocks or bands of consistency depending upon the entropy of the data you injected as the "image".
This is different from the concept of stenography. Anyone who looks at this image file will notice immediately that something is wrong - and might take the time to investingate the image data and find, for example, a MS-DOS executable preamble as the first two bytes and deduce that someone was trying to sneak an exe past them. This can be circumvented trivially by compressing and/or encrypting the payload data.
An obvious application of this technique is to take an illicit file type, "tunnel" it in a bitmap, and then upload the bitmap via an HTTP POST. The web proxy that handles the transaction, any sensor that is watching the traffic, and the recipient all can handle the file as a bitmap. After ripping off the bitmap headers (and decompressing and/or decrypting), the recipient has the orignal file.
Over HTTP, by changing the MIME type to image/bitmap and "tunneling" the data in a well-formed BMP file, this process can be thought of as "layer 8 tunneling". It is not a new idea, and there is probably a better name for it already, but I think it is descriptive and succinct.
Lastly, the BMP file format was used as an example only because of its simplicty. JPG, PDF, AVI, DWG, even TXT (hey, what is UUEncoding and Base64 again?) - all file formats can be used for layer 8 tunneling.