To read CHM ebook on Ubuntu Linux, I use KchmViewer and xCHM. Both can be installed using Synaptic Package Manager.
Kchmviewer is a free, open-source chm (MS HTML help file format) viewer written in C++ for Unix, Mac and Windows systems. Unlike most existing CHM viewers for Unix, it uses Trolltech Qt widget library, and could optionally be compiled for better KDE integration. It does not require KDE, but may be compiled with full KDE support, including KDE widgets and KIO/KHTML.
The main advantage of kchmviewer is the best support for non-English languages. Unlike other viewers, kchmviewer in most cases is able to correctly detect the chm file encoding and show it. It correctly shows the index and table of context in Russian, Spanish, Romanian, Korean, Chinese and Arabic help files, and with new search engine is able to search in any chm file no matter what language it is written.
kchmviewer is written by George Yunaev (see the contacts page for details), and is licensed under GNU GPL license. It uses chmlib, and some ideas and code from xchm.
xCHM is a cross-platform GUI front-end to chmlib, with borrowed bits from Pabs' chmdeco project.
Originally written for UNIX systems (Linux, *BSD, Solaris), xCHM has been since ported to Mac OS X and Windows.
xCHM can show the content tree if one is available, print pages, change font face and size, remember bookmarks, display a searchable index, and search for words in the current page and the whole book.