Let's write the equation as
[tex]\partial_1^2 f(x_1,x_2)-\partial_2^2 f(x_1,x_2)=0.[/tex]
You can always set [itex]x_1=c t[/itex] to get it in physical units of time.
This is the wave equation in 1 spatial dimension. Now the trick is to rewrite this in terms of "light-cone coordinates",
[tex]\xi=x_1+x_2, \quad \eta=x_1-x_2.[/tex]
Now you have, according to the chain rule,
[tex]
\frac{\partial}{\partial x_1} f=\frac{\partial \xi}{\partial x_1} \frac{\partial f}{\partial \xi} +\frac{\partial \eta}{\partial x_1} \frac{\partial f}{\partial \eta}=\frac{\partial f}{\partial \xi} + \frac{\partial f}{\partial \eta}.[/tex]
In the same way you derive step by step the second derivatives [itex]\partial_1^2[/itex] and [itex]\partial_2^2[/itex] in terms of the derivatives with respect to the light-cone variables [itex]\xi[/itex] and [itex]\eta[/itex].
At the end the wave equation reads
[tex]\partial_{\xi} \partial_{\eta} f=0.[/tex]
This is now very easy to integrate. The vanishing of the partial derivative with respect to [itex]\xi[/itex] means that the function is only dependent on [itex]\eta[/itex]. Thus you have
[tex]\partial_{\eta} f=g(\eta).[/tex]
But this implies that
[tex]f(\xi,\eta)=f_1(\eta)+f_2(\xi), \quad f(\eta)=\int \mathrm{d} \eta g(\eta).[/tex]
There's an additional function [itex]f_2(\xi)[/itex], because the partial derivative of a function wrt. to [itex]\eta[/itex] determines this function only up to a function, indepenent of [itex]\eta[/itex], i.e., it can only depend on [itex]\xi[/itex].
Now you can rewrite this equation in terms of the old coordinates, i.e.,
[tex]f(x_1,x_2)=f_1(x_1-x_2) + f_2(x_1+x_2).[/tex]
Here [itex]f_1[/itex] and [itex]f_2[/itex] are indeed arbitrary functions that are determined by appropriate initial and boundary conditions.