Thanks for the input in the comments; here's what I eventually came up with (including tick placement):
fSpace[min_, max_, steps_, f_: Identity] :=
InverseFunction[f] /@
Range[f@min, f@max, (f@max - f@min)/(steps - 1)]
GetMajorTicks[min_, max_, count_, f_: Identity] :=
fSpace[min, max, count, f];
GetMinorTicks[min_, max_, majorCount_, minorCount_, f_: Identity] :=
Flatten[Table[
Drop[Drop[
fSpace[x,
x ((f@max - f@min)/(majorCount - 1) // InverseFunction[f]),
minorCount + 2], 1], -1], {x,
Drop[GetMajorTicks[min, max, majorCount, f], -1]}]];
xMin = 1/4;
xMax = 4;
xMajorTicks = 5;
xMinorTicks = 3;
f = Log;
ContourPlot[
Sin[2 \[Pi] y] InverseFunction[f]@x, {x, f@xMin, f@xMax}, {y, -1, 1},
FrameTicks -> {{Automatic,
None}, {({f@#, # // N} & /@
GetMajorTicks[xMin, xMax, xMajorTicks, f])~
Join~({f@#, Null, {0.005, 0}} & /@
GetMinorTicks[xMin, xMax, xMajorTicks, xMinorTicks, f]),
None}}]

If this can be cleaned up or improved in any way, I'd love to hear!
DensityPlot[f[x,y], {x, Xmin, Xmax}, {y, Ymin, Ymax}]toDensityPlot[f[x, E^y],{x, Xmin, Xmax}, {y, Log@Ymin, Log@Ymax}]. Adding ticks alongymight take you some time but it shouldn't be hard (I've assumed that's the direction you want to log plot) – gpap Feb 01 '13 at 13:13ScalingFunctionsworks withDensityPlot... That might help. – cormullion Feb 01 '13 at 17:32DensityPlot[Sin[x] Sin[y], {x, 1, 10}, {y, 1, 10}, ScalingFunctions -> "Log"]) – Silvia Feb 01 '13 at 18:50DensityPlot. – Silvia Feb 02 '13 at 04:46