What’s the difference between a URI and a URL?

From RFC 3986:
A URI can be further classified as a locator, a name, or both. The term “Uniform Resource Locator” (URL) refers to the subset of URIs that, in addition to identifying a resource, provide a means of locating the resource by describing its primary access mechanism (e.g., its network “location”). The term “Uniform Resource Name” (URN) has been used historically to refer to both URIs under the “urn” scheme [RFC2141], which are required to remain globally unique and persistent even when the resource ceases to exist or becomes unavailable, and to any other URI with the properties of a name.
So any URL is a URI, but some URIs aren’t URLs, they’re URNs instead. Except the ones which are both URNs and URLs.
Clear as mud?
EDIT: Note also Roger Pate’s clearer answer. (I can’t delete this answer as it’s accepted, nor do I think it’s worth just copying his text into here, but please read it…)