I prefer the method that is used in the ACT and Tasmania. Each electorate elects a number of candidates (usually 5 or 7). Candidates are arranged on the ballot paper by party. Voters mark the ballot paper 1, 2, 3, 4, etc next to the candidates in order. In order to be elected the candidate must get a quota of votes. If no candidate gets a quota then the candidates with the smallest number of votes gets eliminated the preferences distributed. If a candidate gets more than a quota the excess is distributed via preferences and the candidate is declared elected. This process continues until all seats are filled.
One enhancement (Robson Rotation) is that the candidates are listed in different orders on different papers. This means that if a number of people do a donkey vote (vote 1,2,3,etc) down the party line this does not give any one candidate any advantage.
For more information about this system see http://www.legislation.act.gov.au/a/1995-1/default.asp
The reason I like this system is that you can vote for your choice of people within the party you want to vote for. If you do not like the people who were elected last time, but still want to vote for the same party then you can do so. That means the dead wood can be kicked out of the parliament without kicking out the party.
Edit. It also means that it is the people who decide what type of people they want. Do they want the radicals or the moderates within the party of choice to be elected? It is not the party who decides that a safe seat can be filled by a loyal party member. They can put the person on the ballot paper but if the voters do not like that person they do not get elected. Others within the party will get elected instead.