The advantage of using a heightmap/temp/moisture/etc method is that you won't end up with a polar region at the equator or a polar region and a dessert region directly next to each other.
I want a technique that can result in a mountain with a lake to the north, a forest to the west and a dessert to the right.
Lakes/rivers... pretty much any water related feature is generally (I think) not considered a biome and added "Ontop" of any biome already in place. I am going to assume you mean to say that mountains, forests and desserts can be adjacent rather than specifically in a north/west/east orientation... do you want to enable polar regions to be next to desserts? or rainforests at the poles?
For my implementation I am using the Heightmap method for placing a base biome,but then I plan on giving each base biome a random chance to morph into a specific sub biome of that base type... for example, the height map method may produce a region that is polar... I will then give it say a 20% chance of becoming one of either a Frozen Forest, Ice caves,hot springs, yeti country, or... I don't know... blue dragon graveyard or something. This way any area that implies it should be cold will be on a location on the planet where it makes sense to be cold but there will still be variety.