Fritzing is pretty nice for this, there are a bunch of libraries built in and available for download that have a lot of the more popular platforms made, and you can define your own parts using an svg editor like Inkscape. It's particularly nice for having defined pin areas for your lines to connect to so things don't break if you drag it around.
draw.io is good for doing quick block diagrams and simplified wiring and is browser based with nice cloud integration. But I haven't tried to use images of PCBs for pinouts with it so it might not be the right thing for that.
edit 2/22/2020: here is a good video showing how the Adafruit feather diagrams are made: https://youtu.be/ndVs1UvK6AE
Sparkfun also has a repo on github for generating SVG elements that they use for their "graphical datasheet" pinouts. I have not tried it but Sparkfun does a lot of these types of pinouts: https://github.com/sparkfun/Graphical_Datasheets
Someone has taken this further with a python script, which may be a good option for advanced users if you don't mind learning how to use the format: https://github.com/stevenj/GenPinoutSVG
Also adding this link to another GitHub repo to generate nice looking SVG representations of PCB designs from a KiCad board file. I have not used this myself either, but it looks like it would pair really well with the way Fritzing defines parts: https://github.com/yaqwsx/PcbDraw
edit 9/4/2021: Adding a link to a tool called Pinion, which can create interactive pinout diagrams from KiCAD PCBs: https://yaqwsx.github.io/Pinion/