This page lists useful techniques for solving Lights Out.

5x5 Lights OutEdit

The following solution always works, though it's rarely minimal. First, "bring down" all of the lights. What this means is that you press the button below each lit one on the top row, then do the same on the next row down, and continue until only bottom-row buttons are lit. Now we label the columns from left to right as A through E. If the leftmost lit button on the bottom row is A, press button B on the top row and "bring down" the lights. If the leftmost lit button is B, press the top row A and bring them down. For C, press the top row D. If all the buttons except for the bottom row D and/or E are lit, you've got an insoluble one.

Of course, this allows you to (belatedly) deduce the optimal solution to that particular starting state, as you can simply keep track of all the buttons pressed then ignore all the ones pressed an even number of times, as they are cancelled out.