Having seen this and scanned some of the discussion, I want to raise a few points. Firstly, it has been gospel in OO going back to early days that "static methods are bad". However, when the designers of Java got their opportunity, they did leave them in. I have long held that belief because static methods tend to not only bypass the whole encapsulated data notion, but they also stick you with only a single copy of something. Having multiple instances of a class with different state is one of the things that drew me to OO that long ago. Static methods also require class members rather than object fields. Further, if you want to setup the state of a class that has all static methods, it either all has to be in constants or the static members have to be mutable. Hence, it would discourage immutability. And on a basic level, without an object, it is as if you are still doing Procedural code. Why waste time compiling Java at all?
That being said, there are exceptions that are encouraged by industry experts. In particular, Joshua Bloch's "Effective Java" encourages the use of static methods as a means of improving how objects are created. Instead of directly hitting the constructor, you use a static method to get an instance. This comes with it a host of advantages, such as the ability to constrain the number of instances to just a few (sort of like making a "multiple-ton"). It allows one to enforce a builder pattern by making the constructor itself private--which in turn allows one to make an immutable object even when all parameters may not be available at one time. Further, with a constructor you get only one name -- same as the class. Using a static method to construct (factory method, actually) you can give a more meaningful name to a constructor to be used for a specific type of configuring of the object.
I have also seen some rather convincing arguments that a static method is acceptable if it does something general to something that is related to a class, but is not using any of the class's state to do so. Suppose you had a "Person" class, but you wanted to have a method that properly capitalizes person names? One could argue that the Person class would be a good place to put it, but that it might be leveraged by others. But it could as easily be argued that "capitalize()" belongs in some utility class.
In summary, I think an ideal question here might have been about when it is advisable to use a static method. Simply having asked, I suspect it is apparent to the OP that there is more to the discussion than "one is better than the other".