http://es.wikipedia.org/wiki/Matriz_de_rotaci%C3%B3n
Lo que dice esta página es básicamente que para rotar un punto hay que multiplicarlo por la matriz de rotación, es decir, las coordenadas del punto quedarían así:
Código
new_x = x * cos(angulo) - y * sen(angulo); new_y = x * sen(angulo) + y * cos(angulo);
Pero yo necesito que gire alrededor de otro punto y por más que lo intento no lo consigo (mi nivel de matemáticas de 1º de bachillerato no da para mucho en estos temas

Un saludo y muchas gracias de antemano.