imtest and other protocol test utilites (smtptest, pop3test, etc) can be useful to determine if SASL authentication is working against the server for that particular protocol. If authentication succeeds, these applications will allow you to write protocol directly to the server. For those who don't know the IMAP protocol, a few hints can be found at the ImtestByHand page.
<CyrusImapConfigDirectory>/log (e.g. /var/imap/log/rjs3), ensure that this directory is writable by the cyrus user, and then connect using your client application that is having trouble. This will dump the total (unencrypted) protocol log from the session. Note that this is not useful for debugging authentication problems, since the log will only be created after the user successfully authenticates.
imaplib module in recent (preferably 2.3) versions of Python can be very useful when used in the Python interpreter's interactive mode. It's reasonably well documented, too, and can be considered a useful alternative to writing IMAP protocol by hand in some situations. Unfortunately, it doesn't support SASL as of the version in Python 2.3.
testsaslauthd can be useful to diagnose if CyrusSaslauthd? is causing you trouble in your CyrusSaslConfiguration?. if it succeeds, then saslauthd is working properly and you can move your diagnosis further down the line (is CyrusSasl looking at the correct socket, etc).