What I personally do is as described by Emerton in his post, and so the following is what other people have told me, and not perhaps totally my own thoughts.
I have also heard that people do the following: post to the arxiv after acceptance by the journal but before giving the final proofs. Advantages:
- You can say "Accepted by Journal X" and so you won't "lose" any citations.
- If the referee asked for major revisions etc. you don't have the "embarrassment" of submitting a major update to the arxiv (if you care, then remember that you cannot delete anything from the arxiv, only update, so everyone, if they look hard enough, can see you mistakes, as it were. I have definitely had people say to me that this puts them off using the arxiv).
- Your work is still made accessible to everyone, and more quickly than in journal (especially if Journal X has a long waiting time).
Disadvantages:
- You're not getting your work out in as timely a fashion as possible-- the gap between submitting the work (i.e. when you finished the work) and the referee getting back to you can be ages (in my experience).
- You lose the possibility to get feedback from the community.
- You are perhaps treading a fine line when it comes to "ethics"-- you're not really posting a "preprint" any more, but basically the final version of the paper (sans any minor typos caught in the proof stage). I can see that publishers might get annoyed by this (but have no evidence that this has ever happened).
- You lose the "public timestamp" feature of the arxiv-- hypothetically, one can imagine getting rejected a couple of times by slow referees, and so the gap between finishing the work and acceptance (and hence posting on arxiv, to make it public) being over a year, and this, again hypothetically, could lead to a priority dispute which would have been avoided if the finished work had been made pubic immediately.

