Xah Lee has an interesting post on overlays. Overlays are not something that a user needs to worry about; they are a means of altering the display of certain areas of a buffer and are therefore a concern only for the Elisp coder. A common example is Magnar Sveen's excellent multiple-cursors package. It makes use of overlays to show the multiple cursors and altered highlighting.
Lee's example shows how to temporarily display certain lines in a buffer with a bold face but the real value of his post is that it serves as a nice introduction to working with overlays. If you're an Elisp coder and haven't worked with overlays, take a look at his post. It will serve to get you going.