Are there any other uses for Perlin Noise besides the obvious?
It can be used in 4 dimensions (i.e x,y,z, time) to create volumetric clouds that appear and disappear. Add a base movement vector that varies over time and you have wind too.
Don't forget about Worley noise too. It's a useful complement to Perlin. The paper itself is here.
http://www.cse.ohio-state.edu/~nouanese/782/lab4/ http://www.flickr.com/photos/12739382@N04/2652571038/
I've already seen it for virtual character motion to seem more realistic.
The best treatise on Perlin noise and things you can do with it I know is in Texturing and Modelling by Ebert, but Hugo Elias put together a rather good collection of pages on noise and other related subjects some time back which is worth a look.
I used it extensively for creating realistic-looking landscapes when I wrote a series of Landscape Visualisation programs back in the late 90 early 2000s using various forms of Perlin noise processes to handle the terrain generation. Many other programs do similar things - the wonderful Terragen for example.
I've also used it to apply realistic noise on top of other textures, for example to add 'roughness' to a Photorealistic Textile plugin for Photoshop.
Basically the charm of Perlin noise is that it's not random but turbulent, so in any case where you have a non-deterministic phenomenon it can be applied to give more 'natural' results. Defiantly a set or routines that any programmer should be familiar with as its use is appropriate in many circumstances where people tend to reach for a random number generator. For example using a Perlin function to derive variations in velocity of some modelled moving entity in a game (say due to wind or some such) works far better than applying random changes.