I'm a complete novice to digital signal processing, and I've started reading a few books on it. In particular, I've run across the concept of upsampling and downsampling. As I understand it, given a discrete time signal $x(n)$, upsampling transforms the signal by (essentially) inserting $L-1$ zeros between each sample. Similarly, one can downsample by omiting ever $L-1$ samples. I'm not sure I understand why one would want to do so. Why insert 'data' into the signal that wasn't there originally (upsampling)? Wouldn't removing data (downsampling) remove features that are essential to its analysis? I'm curious to know under what circumstances is this particularly useful?
Simplest reason for downsampling is simply to reduce the amount of data you have. Say you have a audio raw stream sampled at 44.1 kHz. You may simply want to reduce your data rate to 22.05 kHz because your algorithm can work with that sampling rate. Apply the same principle anywhere else. Just because you have more data does not mean you always need it. It may sound untrue but it is like saying do I need something upto 10 decimal points of accuracy or will 2 decimal points do? [Not exactly the same but you get the idea]
A simple reason to upsample to to interpolate. You have data which is sampled at a particular rate. You want to upsample it to get intermediate points between the actual data. [Think of curve fitting. you want more points on the curve.]
There are implications to downsampling and upsampling. Not every downsampling is the same and not every upsampling give accurate interpolation. You will learn more as you go along.
Edit: Thought I'd give another simpler real life example Image scaling: if you have a small image. You upscale it. This is upsampling. If you want a smaller version you resize to a smaller size. This is downsampling.
Ofcourse practical scalers will not just add 0's and upsample and downsample. [You could do that too, but the output will not look good]. But it should give you another idea of where upsampling and downsampling is done.
A common reason for upsampling is rate matching, for instance mixing two signals with different sample rates, or sending different lesser rates of audio to a player that only plays at 44.1kHz. And you are correct that downsampling does potentially destroy information in a signal (assuming there was spectral energy in the portion that has to be low-pass filtered out before downsampling). But if you have a big item and a small box (channel bandwidth, disk size, etc.), something needs to get thrown out.
Both upsampling and downsampling can be done by (potentially filtered) interpolation, such as with a Sinc kernel. Inserting an integer numbers of zeros is not required.
You should go to see wavelet transform, which uses the filter-bank structure to process signals. In a forward wavelet transform, it decompose a signal using down-sampling techniques; and in a inverse wavelet transform, it reconstructs a signal using up-sampling techniques.
For a quick explanation, here is an example. Suppose you have a signal $S$ with a bandwidth of 1000Hz. Say there are a high-pass filter $f_h$ and a low-pass filter $f_l$ and they are carefully designed so that each of them allows a half of bandwidth of the signal $s$ to pass. As a result, after passing $f_h$, the original signal $S$ will have a filtered version $S_h$ with a band-width of 500Hz. Similarly, it will have $S_l$ with a band-width of 500Hz. This is an example of down-sampling. Why we want to do this down-sampling? Because we can now treat signal components differently. For example, say there is noise in the low frequency. By using this technique, you can filter only low-frequency components but leave all high-frequency component in safe. Once you finish, you can up-sampling $S_h$ and a filtered $S_l'$, and reconstruct a denoised signal.
For an image signal, up-sampling/down-sampling can be considered as one way to resize an image.