Well, depends what kind of models. Anyways, there are the two standard commercial products Maya or Max. I use Max personally, but they both are on equal grounds in terms of what you need here [relative low level polygon mesh making](And I'm not really wanting to start a Max vs Maya thread either). Else there is always programs like Blender and Milkshape. I have never used either, but I am sure there are a lot of tutorials around.
If you are making static meshes there are various ways to convert, but here is how I do it. Once the model is done and UV wrapped and Material defined, I then just export it to the ASE format. I then use UEd to import into Unreal.
If you are making skeletal meshes, I first finish the model with UV wrapping and Materials defined as well rig the character with Character Studio. I then use ActorX (Avaliable on the UDN website for both Max and Maya, various versions supported) to make the reference mesh (PSK) which contains the mesh and material information. Now if I made my own custom animations, I would use ActorX to process the animations and create my own (PSA) file. However, if I used an existing Epic defined skeleton (made by Character Studio) which my model is rigged to then I won't need to make a PSK, but rather assign the PSA to the PSK. That way, I get Epic's animations with my own player mesh. Another way to do that, is to just load the Character Studio animations made by Epic into Character Studio itself and then export a PSA.
That's the gist of it.