If you'd like to know why I am drawn (sorry) to Draw and how I use it, read on.
Draw is a lightweight vector drawing program that comes bundled as part of the excellent LibreOffice Suite. It doesn't have all the bells and whistles you'd find in more powerful alternatives (e.g. Adobe Illustrator or Inkscape), but it has all the basic tools necessary to quickly create clean and effective diagrams of the sort you are likely to include in, say, an academic journal article.
Oh and it's open-source (read: free), and so there is absolutely zero reason why you shouldn't go get it for yourself right now.
I diagram in Draw like I diagram on paper: I trace shapes on grids. Within the software, this involves turning on just a few easy options and going to town with the intuitive drawing tools, and then saving the output to a sensible image format.
(I'm using version 4.4 of Draw on Windows, but these next steps should be transposable to most other versions and operating systems.)
1. Use the grid, Luke.
Go to the 'Grid' sub-menu (within the 'View' main menu) and turn on the 'Display Grid' and 'Snap to Grid' options.
2. Tweak grid settings
Go to the grid settings page (Tools > Options... > LibreOffice Draw > Grid) and set 'Subdivision' (the number of snap-to points within each grid square) to 5 for both the 'Horizontal' and 'Vertical' dimensions. Set the 'Snap range' to 20 pixels (this will make the snap-to-grid behavior, er, snappier).
Allowing the 'snap-to-grid' feature to work its magic in the background, simply begin using the intuitive drawing tools to build your diagram.
(Bonus tip: simply double-click a shape to label it with text.)
After you're done building your diagram, save a copy of it in its native .odg file format (so that you can go back and edit it later). Then click+drag to select your diagram and then go to the 'Export' dialog box (File > Export).
Though I am certain that there are far more elegant ways to handle the drawing process (even within LibreOffice Draw), this way has worked well enough for me. I hope some of these steps will work for you.
For more technical diagrams (i.e. anything with many nodes and edges), I have found Graphviz via the DiagrammeR package in R to be a very clean and efficient solution: