For about 6 years now I have been using UMLet [
http://www.umlet.com/] which is free and open source. It is a small Java based application, supports stacks of diagram and element types, support user defined elements, has no popup diaglogs so works really fast. The diagrams look really good and can be exported to multiple image formats (eg: PNG, SVG, EPS, PDF etc.)
It doesn't do forward/backward engineering of Object Pascal code. In fact, I don't think it generates any source code at all, it only does diagram designing - and it does that well. I personally have no problem with that, because I think most of these automated tools do a crappy job anyway, and as soon as you modify the code yourself, you break the syncing between code and UML diagrams.
I highly recommend UMLet.