Lo del like no es correcto (igual no aplica al orden, supongo que te expresaste mal).
Por que? porque seguramente tengas noticias del 2007, pero cuando se te junten más de un año la lógica será errónea, ya que te mostrara enero del 07, enero del 08, febrero del 07, etc, etc.
Lo mejor es parsear la fecha con funciones de mysql (tema que tendría que estar en base de datos), usando por ejemplo las funciones de día, mes, año:
Código PHP:
$sql = "
Select
*
from
noticias
order by year(fecha) desc, month(fecha) desc
";
Para usarlo en la clausula where es igual, where month(fecha) = '$variableMes'. Y para sacar los meses por año deberás usar group by con las mismas funciones.
Espero que te ayuden mis palabras ;)