Thanks for all nice comments, are always welcome!
As have been asked how I've implemented homing missiles (for their nice trajectories ;) ) I reply here so to help others.
All objects in Tapsteroids are physics entities managed by Box2D. So also the missiles, modeled as rigid body particles, are controlled by physics impulses.
I've tested two methods: the first one using a PID controller, the second one using a steer-for-pursuit steering behavior. Both apply an impulse to the missile to update it's velocity vector toward the target.
Sample code for the PID controller can be found at GameDev, and a nice introduction at TIGSource. Basically you have to store the last N "errors", one each frame together with its time-step, where an "error" is the angle between the current speed vector and the vector pointing to the moving target. The integral error is the sum of the "errors", each one multiplied for it's time-step. The derivative error is the difference of last two errors, divided by the last time-step. The proportional error is the last recorded error. The PID output is the dot product of (Proportional-error, Integral-error, Derivative-error) vector with 3 coefficients, and it's used as an (angular) acceleration factor to apply to the missile.
A generic steer-for-pursuit implementation can be found at the OpenSteer project. Basically you compute a clamped "desired speed" vector: the maximum wanted speed vector from current position to target position, minus the current missile velocity. This is used as a factor to compute the final impulse to apply to the missile.
Both methods require tweaking of some parameters, as they can soon diverge. I've found more stable, more efficient and (above all) with more nice-looking trajectories the "steering" version, that is the one that you can see in the video.
The final graphics effect is done with some particle systems and some CCMotionStreak objects attached to the missile body.
An important note, to work fine you need a constant time-step or a full and correct implementation of the "fixed time-step" algorithm in Box2D (in fact I blogged about it: Fixed time-step implementation in Box2D); otherwise you will experience problems of numerical stability and your missiles will miss the target with very bad trajectories.
Sorry if the description is short and cryptic, but the argument would require an entire blog post (maybe a day...).