I enjoyed this book very much, it does not try to explain or justify the basics of the evolution, it just jumps in the interesting problems and tackles them. Looking at the Wikipedia entry it is considered an advanced book, and John Maynard Smith and Eörs Szathmáry wrote a more popular version of it (which I haven’t read), but might be good if a simpler introduction is wanted: The Origins of Life – From the Birth of Life to the Origins of Language (1st ed.). Oxford: Oxford University Press, 2000. ISBN 978-0-19-286209-9.
To adapt and survive successfully changes to the environment, there are two main strategies: quickly replicate to increase the diversity in the population so that individuals that are adapted to a new environment are likely to be present, or increase the adaptability/resilience of every individual. This second approach increases the complexity of the individual, and thus has to trade replication speed and quick population building for the increased capability of each individual. From the evolution point of view both strategies can be successful, and indeed both are used to different extents by different beings (bacteria, for example, stay relatively simple, but trust in quick replication, whereas we are at the other end of the spectrum. What makes evolution peculiar is definitely the ability of giving rise to more complexity, to go (locally) against entropy.
The book looks at major transitions in which the complexity increased, and how that transition could have happened. From the start of self replication through DNA, prokaryotes, Eukaryotes, multicellular organisms,… finally to language.
I find it interesting how cancer, for example, can be seen as an egoistic evolution of the single cells against the whole organism. This kind of struggle is at the center of multicellular organisms, and is something that has been on for a long time, trying to limit the egoistic push of the single cells. That is the reason I do not believe in a simple universal cure for cancer.