Nearly every dedicated raiding guild uses a DKP system to award loot, but most such systems are seriously flawed from the point of view of fairness. (However, since they're always biased towards the implementors of the system, they live on.)
Most DKP systems award points to players for all matter of participatory activities, which are then spent on the acquisition of items. This is fundamentally flawed. Since the amount of participatory activities such as showing up and killing bosses does not correlate one-to-one with the items obtained, any such system will either be inflationary or deflationary over time, in that the points generated by the participants over time will either be more or less than the points required to purchase the items obtained over that same time span. Thus, points should only be given to players based on the actual items that they help to obtain. Any other option will cause problems over time.
As to the value of items, assigning arbitrary values to the utility of items, taking into account potentially varying rarities, is very difficult. The best way to assign such values is by letting the participants decide through a bidding system. Since the system needs to be zero-sum, the cost paid by the winner needs to be distributed to the losers. As to the auction itself, it should be a second sealed-bid auction, as this is provably Pareto-optimal.
Thus, I propose the following system:
All participants begin with a priority of 1.0.
Whenever an items drops that participants desire, everyone who wants it secretly makes a bid between 0 and their current priority.
The highest bidder receives the item. His priority is reduced by the second-highest bid. Everyone else's priority is increased by that second-highest bid times their own bid divided by the sum of all the non-winning bids.
Note that in cases where only one participant desires an item, that participant's priority does not change.
Example: The Blade of Sashimi, an uber-rare weapon, drops for a raid group. Arcadio, Bob, Camilla, and Detritus all desire it, so they secretly make bids. This is their first raid, so they all have priorities of 1.0, and bid 1.0, 0.6, 0.5, and 0.4, respectively. Arcadio wins and pays 0.6, the second place bid. His new priority is 0.4. Bob's priority goes up by 0.6*0.6/(0.6+0.5+0.4) = 0.24. Similarly, Camilla goes up by 0.6*0.5/(0.6+0.5+0.4) = 0.20 and Detritus by 0.6*0.4/(0.6+0.5+0.4) = 0.16. Note that total priority is still 0.4+1.24+1.2+1.16 = 4.0.
Thus, intuitively, individuals are rewarded with increased future considerations every time an item that they want goes to someone else in the group. The points for a given item only flow between the individuals who actually want that item, preventing a net flow of points from groups whose desired rewards are more common relative to the number of members who want them. (That is, if priest and rogue items are equally common but there are twice as many rogues as priests, it is not the case that points will flow over time from priests to rogues, which would matter if rogues also had to compete with warriors for some items or priests had to compete with mages.)