There are a number of tools available, but as with programming, it's primarily a question of being able to recognize great writing. Once you can recognize great writing, you can more or less just iterate: 1) Write 2) Is it great? (yes) Done (no) Go to 1.
Bad programmers can't recognize good or bad code, so they stop once it works. Same for bad writers.
Bad programmers can't recognize good or bad code, so they stop once it works. Same for bad writers.