I've honestly never liked it because I've yet to see a way of implementing it that isn't actually weirdly biased in one direction or another:
* If you do it randomly, it's largely meaningless (you can minimise this by excluding inactive users)
* If you do it based on staff feeling, it's biased in favour of who staff likes (obviously)
* If you do it based on community feeling, it's got some serious potential to be gamified by the community; it just becomes a popularity contest.
* If you do it based on number of posts that month, it's gamifiable unless you add in various disclaimers and rules which you'll have to police.
* If you do it based on number of likes that month, or most liked post, you're back to the popularity contest - skewed by prevalance of poster. (Consider: on simplemachines.org, I am the #1 poster. I am also the most liked person - and I haven't posted there in *months* to keep my place but it's still there for onw.)
You could get better mileage blending some or all of these but ultimately it will devolve into something either gamifiable or manipulatable with a big enough forum.
What you could do, though, is run with the bias. Make two awards.
The first is staff pick of the month for most helpful, most insightful (and be completely upfront that this is both biased and a staff pick), and the second is a community pick. You almost want a custom poll option for this: pick the top x posters of the month by post count, plus the top x posters by likes received that month. Keep pulling from both lists (ignoring duplicates) until you have the top... ten, say, of the month. Then allow people to vote for these people - but also if they want to write in a name of a person with autocomplete. Voting should be anonymous to regular members until the end of the voting period.
This way you get some flexibility around who gets picked with the 'obvious frontrunners' picked out first, then everyone else can still vote for their favourite.