Apparently boost contains two separate libraries for state machines: Statechart and Meta State Machine (MSM). The taglines give very similar descriptions:
While coding my own PPP implementation I used Statechart for three reasons:
1) Statechart is simpler and has clearer documentation;
2) I really dislike UML :)
Boost docs say MSM is at least 20 times faster, but compiles pretty slow for large FSM.