Here's a conceptually simple answer (assuming L1 and L2 are regular).
1) Find DFAs D1 and D2 for L1 and L2 respectively.
2) Construct D'1 and D'2 from D1 and D2 by swapping accepting/non-accepting states (note that D'1 accepts exactly ~L1 and D'2 accepts ~L2 where ~ means "complement of")
3) Use the standard product construction three times to produce a DFA that accepts exactly (L1 intersect ~L2) union (L2 intersect ~L1)
4) Check to see if the DFA from part 3 accepts any strings by checking each accepting state for reachability from the start state.
5) If the DFA from part 3 accepts any strings, then L1 <> L2. Otherwise, L1=L2
There are a huge number of heuristics you could use to speed this up, but conceptually, this is probably the simplest algorithm. A good reference for the product construction in part 3 is "Automata and Computability" by Dexter Kozen.