I have been extremely happy with AutoIt. The language is an easy flavor of Basic. They include great help files, a script compiler, an editor that understands not only the syntax but supports F1 for help, etc. They have plenty of code samples.
I don't have any first hand experience with AutoHotKey - I do remember considering it, but I've never looked back since using AutoIt.
AutoHotKey is very good at managing hotkeys and basic GUI automation. It's syntax is horrible and it's not meant for bigger applications.
AutoIt has almost every feature AutoHotKey has and much more. COM-automation support, arrays and a pretty nice UDF (User Defined Functions) library. It's harder to build complex hotkeys in AutoIt.
I used AutoIt before AutoHotkey was created (when it had a syntax inherited from BAT files). I don't have enough experience with current AutoIt to make a correct comparison. It has a quite regular syntax, while AutoHotkey's syntax (although greatly improved from the original style) seems odd. People having never coded before actually love this syntax!
I hesitated, read numerous comparisons, and finally chose AutoHotkey despite its syntax. Partly because of its superior hotkey management, partly because it was open source. The author was active (he stopped, but there are alternative branches now) and open to suggestions. I shown a prototype of regular expression support using a PCRE DLL. He integrated the concepts and pushed them beyond (regular expression support in window name detection for example).
Documentation is excellent, detailed and full of examples with a comprehensive index. The community is very active and helpful. The binary is compact and you can make a standalone EXE file with your scripts. It also has GUI support (good for quick simple dialog windows).
I won't say one is better, the choice is mostly a matter of taste, feeling and needs.
I worked with AutoHotkey and thought the language was difficult. I suppose it is either an acquired taste or some people have affinity for it. I was a long-time Perfect Keyboard user but am now a huge fan of AutoIt.
Though it is Basic-like I can still write "C" -like programs which is most comfortable for me.
And the libraries for AutoIt, what a time saver. For example, the library for IE has a lot of great and useful functions.
Good IDE and active user community.
I use both depending on the situation. AutoHotkey is nice for quick keystroke macros and AutoIt has a much broader range of automation functionality and user-defined functions (UDFs) allow a range of useful things such as XML and database interaction. When automation requires a lot of GUI interaction I use AutoIt.
AutoIt is a tremendous tool and its seductive ease of use and immense library of UDFs, coupled with an unbeatable help file, is hard to compare to.
I tried AutoHotkey, but its clunky feel and shabby syntax turned me off. Why settle for the ugly sister when you can wine and dine the princess herself. AutoIt 100%.