Surpringingly the top speed is not necessarily anything to do with friction, though friction will of course have some effect.
A motor acts as a generator, i.e. if you turn a motor it will generate a potential difference just like a generator, and this potential difference (usually called the back EMF) is proportional to the motor speed. So if you connect a X volt battery to an unloaded motor the armature will accelerate until the back EMF rises to the same value as the applied voltage. At this point the motor will settle to a steady angular velocity.
The equations describing this are given in the Wikipedia article on the DC motor, though this is far from the best written article I've seen. Basically the back EMF, $E_b$, is given by:
$$ E_b = \omega \Phi k_b $$
where $\phi$ and $k_b$ are dependant on the motor design and for the sake of this discussion can be treated as constants. So ignoring friction, the internal resistance of the motor and with no load on the motor the top speed will be when $E_b$ is the same as the applied voltage $V$ so:
$$ \omega = \frac{V}{\Phi k_b} $$
So it predicts angular velocity is proportional to applied voltage.
The effect of internal resistance, $R_i$, is easily included since it just creates a potential drop of $IR_i$ and the equation changes to:
$$ \omega = \frac{V - IR_i}{\Phi k_b} $$