From the first letter of Latinlībra(“pound”). The symbol is derived from the mediaeval tradition of placing a stroke over a letter or letters of a word (in this case L) to indicate an abbreviation; when letters have ascenders like L, the stroke frequently passes through that ascender. £ is thus cognate with the pound sign#, which was similarly derived from lb with a stroke through the ascenders.
The practice of placing a stroke through the initial of the name for a currency as a symbol for that currency has been extended to other currency symbols, including several shown below.