The Icarus Verilog Wiki Edit
This is the main page for the Icarus Verilog documentation. From here, branch out to the different sorts of documentation you are looking for. In all cases, the documentation is in wiki form, so that you can update or improve it (although I encourage discussion first before making major changes.)
This wiki in general presumes at least a basic working knowledge of the hardware description language Verilog. For basic information about the purpose and provenance of the language itself, the best starting point is the Wikipedia article here. If you are looking to learn the language in detail, then there are many books on the subject.
And of course ultimately it all comes down to the official language reference, IEEE Std 1364-2005 (not free) from the IEEE.
The "ABOUT" page has more information about this wiki, including pointers to editing tutorials.
The Icarus Verilog home page is at iverilog.icarus.com.
The Installation Guide has details on where to get Icarus Verilog and how to install it.
This describes the basics of how to use Icarus Verilog, including a description of its basic features and how they apply to Verilog design.
This describes how you too can be an Icarus Verilog developer, including developer specific tips on getting and working with the source.
Freeform to-do list/comment board/soap box for a less constrained flow of ideas on the ongoing development of Icarus Verilog.
Brief definitions of common terms related to Icarus Verilog.