I dare say that the answer is..97% of the time, max CP.
You must know that those pokemon that has higher max CP are mostly stronger than those with lower max CP. why?
Easy, for example when your cloyster reaches a lv.40 it's maximum CP is only a mere 2052 while Lapras will have a staggering number of 2980. The difference is too big, it's too clear, cloyster is not Lapras' match at all. Even if cloyster has better moves than lapras, the number is just too different.
However, there are times when the higher DPS might make you consider. ( maybe not now but in the future when more pokemons will be introduced ). However, this can only occur when the CP of both pokemons are not too far away, since there are no pokemon currently who's moves may make you consider in the higher CP levels, I will just use the closest example in arcanine and flareon.
Arcanine's max CP is 2983 and Flareon has a max CP of 2643. Arcanine's Fire type primary move is a Fire Fang with a DPS of 8.33 [ not counting STAB ] while Flareon's primary move is Ember with a DPS of 9.52 [ not counting STAB ] with both of them are able to learn Flamethrower as a charge move. Now, Flareon has a better fire typing move than Arcanine but there is still a considerable difference of 340 CP points. Hence, the conclusion is Arcanine is a better choice ( probably, since I can't calculate that, but I'm 99% sure ). But if, in the future, a fire type pokemon with a max CP of 2900 and has an access to ember is introduced, it could be giving Arcanine a run for their money.
P.S btw, I don't know why Cloyster is ranked as the best for ice type since Lapras can learn both of Cloyster's highest DPS move and with a STAB too. Basically Lapras is just an upgrade for Cloyster.