My preference would be for leaders to be chosen by MPs in caucus. That gets rid of people like O'Leary who don't want to bother running in an election and having to chat with real people. (I like O'Leary as a media commentator though.) 
My second choice is for the old style delegated convention where each riding sends a specific number of delegates. But my preference is that all of the delegates be the executive of the local associations, the people who actually do the work and know the candidates best. I never liked that winner-take-all delegate system where an entire slate could be elected that was unrepresentative of the local association volunteers. 
The worst way to elect party leaders is one-member-one-vote, which usually results in a leader who doesn't know where 90% of the country is.