Actually neither agile nor lean has a precise definition. In both cases it is rather a set of principles and practices in the former case basing on Agile Manifesto in the latter on Toyota Production System adapted to software/IT industry.
I would say that both lean and agile are two flavors of the same movement in software industry which focuses on effective delivery of products customers need (it is a vast generalization though). The difference is in ways this goal is achieved.
With agile there is focus on well organized process which allows frequent delivery which makes it easy to adjust the course of development. Lean focuses more on limiting waste (including work in progress which is considered as one of types of waste) and making production and delivery workflow efficient.
Now, it happens often agile and lean approaches are put into the same bucket so you will find all sorts of mixing, Scrum + Kanban being the most significant example. See Scrumban as a reference. Unless you talk with an orthodox it shouldn't be a problem if you name Kanban an agile method.
To make some order in labels: Agile and lean are general concepts. Scrum and XP are specific implementations of agile while Lean Software Development and Kanban are specific implementations of lean. At least this is how people usually perceive them. It is definitely possible to mix different approaches, or parts of them, into one method. Scrum+XP or Scrum+Kanban are probably the most popular combination.
If you want to dig deeper I can recommend great minibook comparing Kanban with Scrum: Kanban and Scrum making the most of both. Pdf can be downloaded for free.