Larmor Equation - Classical Derivation
Part 1—general Bloch equation.
We need three basic equations to get us going. The direct relationship between the magnetic moment (μ) and the spin angular momentum vector (S) is, from experiment
μ = γS (Eq. 1)
where the gyromagnetic ratio γ = 2.675*108 rad s-1 T-1.
(Note γ = γ/2π = 42.58 MHz T-1. T is the Tesla unit of magnetic field.)
When this magnetic moment is in the presence of an external magnetic field B it experiences a torque and precesses around the field. The formula for the net torque (N) on any current distribution is
N = μ x B (cross product, Eq. 2)
Nonzero total torque on a system implies that the system's total angular momentum (arising from spin only, in this discussion) must change according to
dS/dt = N (Eq. 3)
From Eq. 1 and 2 we see that Eq. 3 reduces to the general Bloch equation:
dμ/dt = γμ x B (Eq. 4)
Since (by cross-product definition) dμ/dt is perpendicular to both μ and B, then in the event that μ and B are not aligned (e.g. after energy input into the system which drives the magnetised spin system into a state of resonance), μ must move in a circular path. This is precession.
Now see Part 2—consider geometry.
Part 2—consider geometry.

Precession of magnetic moment μ around an external magnetic field B
From the geometry of the situation (the arc length
|dμ| = radius.|dφ|), we may write
|dμ| = μsinθ|dφ| (Eq. 5)
From the general Bloch equation (Eq. 4 from Part 1: dμ/dt = γμ x B) we may therefore also state
|dμ| = γ|μ x B|dt = γμBsinθdt (Eq. 6)
Eq. 5 and 6 combine to produce γBdt = dφ with B ≡ |B|. Since the rate of change of φ is the angular precessional frequency
(ω = -dφ/dt (the rotation is left-handed in the direction of B)), we can use Eq. 5 and 6 to yield
ω = -γB (Eq. 7)
If the external magnetic field is constant (B0) then φ = -ω0t + φ0, where φ0 is the initial angle, and since ω = -dφ/dt = -(-ω0) we may write the Larmor equation:
ω0 = γB0
If the scalar Larmor frequency f0 is calculated instead of the angular Larmor frequency ω0, and γ is used (γ = γ/2π): f0 = γB0. This is more convenient, and Larmor frequencies can be calculated in MHz.
Further reading on this topic:
Books: MRI: Physical Principles & Sequence Design p29, MRI From Picture to Proton p136