As the Wiki entry is really good about it I don't go into detail of how the method works. To sum it up briefly: Proteins - either their full length open reading frames or domain fragments - are expressed in E. coli and insect cell based systems, purified to a great extent using different chromatography techniques like affinity-, size exclusion and/or ion exchange chromatography.
The ultra pure proteins are then subject to a large trial and error based screening for crystallization conditions. Those cause the protein molecules to arrange in a very repetitive and symmetrical manner - the crystal. These can be shot by X-ray, the occuring diffraction pattern of the X-rays is transformed into an electron density map that is then interpreted mainly manually into an atomic model of how exactly the protein structure looks like.
All these techniques are well established and available in house.