1. Let the students make mistakes. They need to. We all learn best through making mistakes. Trial and error is the name of the game.
2. Give the students time to realize they've made a mistake and try to correct it themselves. If they can't, maybe someone else can help them. If nobody can help then you can either step in and give the correct form or make a note of it for later.
3. As far as possible, correct mistakes anonymously. Do this by making notes of students' mistakes as you monitor and then putting them on the board later and give the students themselves the opportunity to correct them, in pairs or small groups. If no one knows the right answer, give it to them, but only as a last resort. Anonymous error correction is a kind way to deal with mistakes. It isn't important who made the mistake originally - the point is, can the students all correct it? I tend to doctor the mistakes so that even the perpetrator doesn't recognize them as his/her own. For example:
Original error: "I have been to Paris last year." = On the board: "I have been to London last week."