Factories provide a centralized means of creating objects of a particular class, or objects with a particular set of properties, even in programming languages which do not support constructors.
Even in programming languages which do support constructors, it is sometimes necessary to write functions which construct objects with a certain set of properties which are specific to the application and cannot be made internal to the class being constructed.