Of course you can always program your own Cellular Automota function to do whatever you want, but if you're talking about the CellularAutomaton function, there are several examples in the documentation showing it being used for 2D set of initial conditions.
You can find these examples in the documentation for CellularAutomaton under Scope > Multidimensional Rules