They're the same, basically. They're both anonymous functions in C# specification terminology.
Lambda expressions are generally more concise, and can also be converted to expression trees, which are crucial for out-of-process LINQ.
Anonymous methods allow you to drop the parameter list if you don't care. For example:
EventHandler handler = delegate {
Console.WriteLine("Sender and args don't matter");
};
Given how rarely the latter point is required, anonymous methods are becoming an endangered species in modern C#. Lambda expressions are much more common.