You're missing a projection.
([point to rotate] - [center of rotation]) * [rotation matrix] + [point to rotate]
Writing it explicitly for some point, it should look like:
x' = (x - x_c) * cos(theta) - (y - y_c) * sin(theta) + x_c
y' = (y - y_c) * cos(theta) + (x - x_c) * sin(theta) + y_c