Ok, I had a few problems.
1. I was trying to mix DX9 and DX10 syntax. Use SamplerState for all of your samplers in DX10, sampler for DX9... http://msdn.microsoft.com/en-us/library/windows/desktop/bb509644%28v=vs.85%29.aspx
2. My shaders were post process only, no vertex shaders. In DX10 this is a problem because it expects the input of the pixel shader to be the same as the output of the vertex shader. Since I have no custom vertex shader it was defaulting to SpriteBatch's vertex output. Here's what your pixel shader function should look like to match that:
float4 CombinedPixelShader(float4 pos : S_POSITION, float4 color : COLOR0, float2 texCoords : TEXCOORD0) : S_TARGET_OUTPUT