These are all great suggestions.
I think that my biggest improvement came when I started making changes in the way i built up my campaign. I used to prepare so much that I didn't leave enough room for the players to do some of the crazy things they like to do and it occasionally lead to me forcing something that didn't quite fit (The local lord needs to be the PCs good friend for this next adventure to work, but the PCs very recently ticked him off...bigtime, things like that). What I've come up with is creating very big, broad strokes for my story lines and filling in the details as i go or at least only when things get closer.
For example, in the campaign I'm running right now I know that the group should get in good with the local lord and become his friend, but that's all I know at the moment. I have no major adventures set up based on this need yet because they may not get in good with him and it's going to take a bit for them to develop that reputation.
I've also learned that you need to have multiple story lines running at the same time. That way if the PCs do something unexpected, you can simply shift the focus from one story line to another.
Again, for example, I recently finished a campaign where I had at least 3 major story lines going on at the same time (a local lord who had assassination attempts coming his direction, one evil guy trying to collect several artifacts, and a mystery woman who lost her memory). After several adventures focused on the story line, the group decided to no longer persue the artifacts. All I had to do was increase the frequency of the assassination attempts while I figured out what to do to fill the void.
Finally, when the players give you something to work with.....run with it. I had a player (playing a cleric) once begin an ongoing argument with the head of a local temple (of his clerics deity). I had never intended for this to amount to anything, but it got to be such a normal thing that I decided to make a storyline out of it. The head of the temple all of a sudden turned away from his faith, but managed to stay on at the temple thru the use of magic and deception. The player figured this out after a while and took the guy down.
Working on my campaign creation and story lines, especially being flexible with those storylines, have really improved my game according to my players and I think in one case it has made the difference between that player staying or leaving the group.
later