Jupiter's moon Io is about the same mass and size as the Earth's Moon.
Based on this we would expect Io to have about the same inventory of
radioactive elements and the same cooling rate as the Moon. We would
expect Io to have the same level geological activity as the
Moon, namely none. However, Io is the most geologically active
surface in the Solar system. This means that the mechanism
responsible for heating the interior of Io is very different from
that of the Moon.

The mechanism responsible for heating the interior of Io is called
Tidal Heating. This little tutorial is my attempted to explain
a rather simplified version of the tidal heating of Io.

The force of gravity between two objects (M) and (m)
depends of their respective mass and the square of the distance
(d) between them. The force is very strongly dependent on the
distance between the objects.

This means that when Io orbits Jupiter, the side of Io nearest to
Jupiter feel a slightly larger gravitational pull than the side of Io
furthest from Jupiter. Since Jupiter is very massive (318 times the
mass of the Earth) this means that this difference is rather large.

This difference in gravitational forces actually distorts the
shape Io. The image show this effect greatly exaggerated, the actual
distortion is about 100 meters. The Earth has the same effect on the
Moon but to a much lesser extent. This difference in
gravitational forces is called the Tidal Force

Since Io is in synchronous orbit around Jupiter it keeps the
same face toward Jupiter at all times (just like the Earth's Moon).
This means that the distorted shape of Io keeps the same orientation
with respect to Jupiter (this is a slight simplification). If
Io was Jupiter's only moon this would be the end of the story. Io
would be in a nice nearly circular orbit about Jupiter with its
slightly distorted shape. This is what is happening with the Earth's
Moon. No tidal heating would occur.

However, Io's orbit is in a 2:1 resonance with the orbit of
Europa, another moon of Jupiter. This means that Io make two orbits
for every one orbit that Europa makes.

This means that the orbit of Io is changed. Io orbit is forced the be
slightly eccentric (red line, shown very exaggerated). This
is the same mechanism that changes the orbits of the asteroid to
create the Kirkwood Gaps, and changes the orbits of ring
particles of Saturn, Uranus, and Neptune to create the gaps.

Since Io is being forced by Europa into an eccentric orbit, its
distance from Jupiter constantly changes. When Io is close to Jupiter
the tidal forces are greater so the distortion of Io is greater. When
Io is further from Jupiter the tidal forces are less so the distortion
of Io is less.

Io goes around Jupiter in 1.8 days. This means that in 1.8 days the
shape of Io goes from more distorted figure to a less distorted figure.

The constant change in shape of Io causes a large amount of friction
in the layer of rocks that make up the world. This friction generates
a great deal of internal heat. It is this internal heat source that
drives the tremendous volcanic activity we see on the surface of Io.
This heating mechanism is called Tidal Heating

In order to have Tidal Heating you need:

A massive central planet (Tidal forces depend on mass)

A moon orbiting close to the massive planet (Tidal forces really
depend on distance).

Another moon in resonance with the inner moon. (You have to
force an eccentric orbit in order to keep the distance between the
inner moon and the planet changing)

This little tutorial is a very qualitative discussion of Tidal
Heating. If you want to dive into all of the fun mathematics
the Wikipedia
entry is a pretty good place to start.