The base IMAP4 protocol is defined in RFC 3501.
IMAP4 was designed to solve many of the limitations of POP3. With IMAP4, mail arrives in an IMAP4 server (usually at your ISP or on a local server such as VPOP3). The email messages are put into an Inbox folder in a mailbox on the server. Then, an email client (eg Windows Live Mail, Mozilla Thunderbird or a mobile phone etc) will log into the IMAP4 server and synchronise with the server. The main place where messages are stored when using POP3 is on the email server, so you should ensure that it is backed up regularly. Usually the email client will keep a cached copy of the mailbox on the user's computer to improve performance, but it will resynchronise down from the server whenever it connects (this means that if messages disappear from the server, the client will delete them from its local cache when it connects to the server, it will not upload them back to the server).
Because the mail is stored on the IMAP4 server, this means that it has features for managing folders, copying messages between folders, searching for messages, marking messages as read/answered etc.
Unlike POP3, with IMAP4, actions take effect immediately. If the IMAP4 client deletes a message, the message is deleted immediately, and if a new message arrives, it will be visible to the email client immediately. The mail server will notify the email client if new messages arrive, message flags are changed, messages are deleted etc, so the email client can keep its displayed message list and cached copy in synchronisation with the server. This means that usually IMAP4 clients will connect to the server and stay connected. There is no need for them to 'poll' for new messages as with POP3, so usually a 'send/receive' button is redundant.
Multiple email clients can log into the same mailbox at the same time; in fact most email clients will make several simultaneous connections to the POP3 server to perform several tasks at once. The notifications from the server go to all relevant connections, so if 3 email clients are logged into the same mailbox and folder, and a message in that folder gets deleted by one of the clients, all three email clients will be notified of the message's deletion.
Another feature of IMAP4 allows email clients to store messages directly into message folders. This is most commonly used for 'Sent Items' or 'Drafts' folders. The email client will store a copy of sent messages into a 'Sent Items' folder (this is not the server's responsibility). This means that sent items and draft messages will be available from any IMAP4 client, not just the one from which the message was sent or created.
One feature of IMAP4 which sometimes causes confusion is that message folders can by 'subscribed' to. Most email clients will not display folders which are not subscribed to. This allows you to 'hide' folders you don't want to see any more, however it can cause confusion because folders may seem to disappear if they are unsubscribed from, or folders which have been deleted may still be visible in a folder list, but not accessible, because the folder hasn't been unsubscribed from and email clients will often show subscribed folders whether or not they exist. Usually the email client will automatically subscribe to a folder when it creates the folder and unsubscribe when it deletes the folder so you won't know it is happening, but this is part of the email client behaviour, not the server's, so if the client doesn't manage the subscriptions properly, it can cause apparently strange behaviour.