Here's the .font.conf file I use. It's not that much different than the one originally posted, but it has a few differences: it replaces the Helvetica font with 'sans-serif', because it's not a true type font, which looks bad. Also, it turns off autohinting on bold fonts as those tend to get too wide (particularly on web pages).
Code:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Disable sub-pixel rendering.
X detects it anyway, and if you set this as well, it just looks really horrible -->
<match target="font" >
<edit mode="assign" name="rgba" >
<const>none</const>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
</match>
<match target="font" >
<edit mode="assign" name="hintstyle">
<const>hintfull</const>
</edit>
</match>
<!-- The first part of the 'magic.'
This makes the fonts start to look nice,
but some of the shapes will be distorted, so hinting is needed still -->
<match target="font" >
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
</match>
<!-- Autohinter is not turned on automatically.
Only disable this if you have recompiled Freetype with the bytecode interpreter,
which is run automatically.<br /> -->
<match target="pattern" >
<edit mode="assign" name="autohint">
<bool>true</bool>
</edit>
</match>
<match target="font">
<test name="weight" compare="more">
<const>medium</const>
</test>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
</match>
<!-- Helvetica is a non true type font, and will look bad.
This replaces it with whatever is the default sans-serif font -->
<match target="pattern" name="family" >
<test name="family" qual="any" >
<string>Helvetica</string>
</test>
<edit mode="assign" name="family" >
<string>sans-serif</string>
</edit>
</match>
<dir>~/.fonts</dir>
</fontconfig>
This is based off the .font.conf file provided here:
Problem with Linux and LCD monitor?? - LinuxQuestions.org