I'll show you my preferred way of exporting figures for use with $\LaTeX$.
I prefer to use consistent font sizes in figures. This means that I need to export PDF figures at the appropriate size and avoid scaling them within LaTeX.
Let's say we want a 10 cm wide figure that uses 10 point type. Taking an example figure from the documentation,
g = ContourPlot3D[ x^4 + y^4 + z^4 - (x^2 + y^2 + z^2)^2 + 3 (x^2 + y^2 + z^2) == 3, {x, -2, 2}, {y, -2, 2}, {z, -2, 2}, Mesh -> None, ContourStyle -> Directive[Orange, Opacity[0.8], Specularity[White, 30]], PlotPoints -> 30, MaxRecursion -> 5, BaseStyle -> {FontSize -> 10}] (* <-- specify text size in point here *) 
I increased the PlotPoints and MaxRecursion options, otherwise the surface will look a bit ragged when rendered at high resolution.
I prefer to work in centimetres:
cm = 72/2.54; Turn on the ruler (Window -> Show Ruler) and verify that the following is really 10 cm wide (you may also need to go to Edit -> Preferences and set the ruler units to centimetres):
Show[g, ImageSize -> 10 cm] As you noticed, exporting 3D objects as vector graphics is not ideal, so let's rasterize this figure at the correct size:
image = Rasterize[Show[g, ImageSize -> 10 cm], "Image", ImageResolution -> 600]; (Unfortunately Mathematica has trouble with scaling tick marks when rasterizing, so you may want to use an explicit tick specification if this is important.)
A resolution of 600 dpi ensures that it will look excellent in print, but rasterization may take a while.
Finally, export the figure to a PDF of the correct size:
Export["figure.pdf", Show[image, ImageSize -> 10 cm]] (When using PDF, it is necessary to specify ImageSize within Show and not Export to avoid some problems.)
You can open the produced PDF, maybe even print it out, and you'll see that all the text is precisely at 10 point size.
The same principles can be applied to 2D graphics that export well as vector:
g = Plot[Sin[x], {x, 0, 10}, BaseStyle -> {FontSize -> 10}] Export["figure.pdf", Show[g, ImageSize -> 10 cm]]