Lo mejor es con CSS, ya que hacerlo con GD/Imagick además de gastar recursos sin sentido para un efecto que se consigue perfectamente con CSS, eso sin contar que el algoritmo no es sencillo.
Además permite que cuando cambies de diseño y quieras que la sombra sea de otro color no tengas que procesar las imágenes nuevamente.
Yo lo veo excelente con CSS, cualquier otra cosa es pérdida de tiempo.