Each methodology takes a different approach to developing software. Key differences between methodologies are typically to do with the way the development process balances features against development time and cost of development.
Of course, each methodology has its advantages and disadvantages, which means that a methodology that is suited to one project may not be suitable for another. More specifically, different methodologies suit different types of team, different types of software and different business environment.
When comparing methodologies it is worth remembering that newer methodologies draws on those that came before them, whereas older methodologies are refined over time as they adopts ideas and techniques from newer approaches.
The methodologies in the question fit together something like this:
Waterfall is a general approach to development, often understood as the traditional approach to development. It clearly separates a development project into steps such as analysis, design, implementation and testing, each of which is completed before the next begins. The advantages of waterfall are that it is easy to understand and therefore looks easy to manage. Schedules and features are usually fixed at the start of the development cycle. The weakness of the methodology is that it doesn't accommodate changes, doesn't recognize the difficulty of planning entire projects up front, and doesn't deliver any value until every part of the project is completed.
SSADM is specific example of Waterfall development.
Spiral is a general approach that is a development of Waterfall. It uses a waterfall-type process to build a prototype which is then refined through another waterfall, and so on.
RAD (Rapid Application Development) is another general term. It focuses on speed of development, sometimes resulting in higher costs and lower quality.
Agile is another general term. The main objective of Agile methodologies is to accommodate changes to requirements. In most agile methodologies, all types of development activity happen concurrently rather than sequentially. Agile typically involves building a very primitive but complete product and adding features iteratively. Agile projects are prone to taking a long time to complete, but are supposed to deliver key product features early.
Iterative means that new features of the product are added in short intervals (typically 2-4 weeks) and that the product can be deployed at the end of each interval. Iterative development is foundational to Agile development. As such, Iterative and Agile are often used synonymously.
Incremental means much the same as Iterative.
XP is an example of an Agile methodology, and was developed by Kent Beck.
DSDM was originally based on RAD ideas, but is now considered another example of an Agile methodology.
This site appears to go into more detail: http://www.mariosalexandrou.com/methodologies.asp