Rather than leaving a brief comment on this topic, let me just point at this wikipedia page which is very comprehensive:
My own comments:
Once we learn to control fusion, that would be an attractive candidate for the engine. The nice thing is that there might be no need to convert the reactor's energy into something else (like electricity), then feed it to the engine. The reactor itself might be the engine. It would achieve fairly decent ejection speeds too.
In a more distant future, black hole engines look interesting. When talking about total mass conversion (into energy), most people think about antimatter; but a tiny black hole also converts all its mass into radiation, via the Hawking effect. If we learn to generate small black holes on an industrial scale, and if quantum gravity doesn't play some unexpected trick on us, those would make awesome engines - just feed them any random space junk and they keep going.
The only thing about micro black holes is that if you stop feeding them, they keep shrinking, and radiate even more furiously, and so shrink even further, and so on, until they detonate. Either keep feeding it, or eject it far far away.