Depends on the task actually. Given the wide range of customization options available on programming tools, I prefer to complete the entire editing on the software itself. I use the "Matplotlib" toolbox on python for most of my works. Occasionally I use "MATLAB". For flowcharts and algorithms, I use "Microsoft VISIO".
Some journals require separate submission of the figures in a separate file. In that case, I combine figures in a PDF file using "Adobe Acrobat".