I know that TikZ was mentioned already, but I think it deserve its own answer. It is different from Omnigraffle just like TeX is different from Word. But, if you're up for the effort, you'll enjoy the freedom of producing extremely high quality figures!
True, using TikZ for "heavy" diagrams can lead to lengthy compilations, but this can be solved using the externalize library of TikZ, or the Standalone class. See also this possible approach using make.
Although TikZ is not at all WYSIWYG, there are several editors, that enable the use to draw "by hand" the diagram and export it to a Tikz snippet. Personally, I don't have experience with this kind of combination.
Another advantage of TikZ, that as it is somewhat a programing language (after all TeX is turing-complete) you can program your diagram and use external data sources and visualize them. To that end, you can use a combination of TeX, lua or other languages of your choice.
Finally, and most important; TikZ provides an amazing live community which can help you with everything related to it. A perfect starting point would be the TeX.se.
PS: You can also have a look at pstricks. It implements a similar spirit like TikZ but... Well, I'm not using it so I cannot say much. I can say, that I saw amazing outputs of pstricks.