Simple and effective way is the squeeze method. You squeeze the right amount of thermal paste on the cpu then with the heatsink squeeze the thermal paste to spread out the surface evenly and with a twisting motion while keeping good amount of downward pressure. Align the heatsink and secure the mounts.
Another way is to squeeze and spread out the thermal compound on the surface of the cpu with a use of a credit card or something similar with straight edge. Spread it out evenly and making sure it's thin like paper thin. Place heatsink on the cpu, push downward and twist and then secure in place.
Then here's the sure way to have thin even layer of thermal compound. First, clean the heatsink surface that will comes in contact with the cpu. Then with a use of a tape like masking tape or something similar, tape the edges of the surface of the heatsink and leave a space in center untaped, roughly the size of the cpu. Now place thermal compound on the heatsink center and with a use of the credit card or similar objet, spread out the thermal paste on the surface (the center) making sure the credit card is resting/sliding on the tape. This way the layer of thermal paste gets evenly spread out the surface about as thin as the masking tape. Remove the tape , place heatsink of the cpu, downward twisting motion again and secure.
Or (not advisable) you can do the factory apply method, which I think they seems to squeeze out 5 times as needed and mount the heatsink with all the thermal pastes oozing out the sides of the cpu.
As for my method, I mastered the apply-squeeze-twist method and got the same results and using with the rest of the methods.