Das ist ein kleines mathematisches Problem, dass an sich ueberhaupt nichts mit floats zu tun hat.
Deine Bilder sind 400px Breit, heisst also in ihrer Gesammtheit 800px breit.
Jetzt ist das aber so, dass der von Knuddels vorgegebene Wrapper, um die 600px breit ist.
Dir fehlen also satte 200px, da kannst du noch so viel floaten, die Bilder werden immer untereinander angezeigt, solange du den wrapper nicht vergroesserst.

Loesung:
Warnung! Spoiler!
Html:
<div style="width: 900px"><img src="http://i46.tinypic.com/i3tn9z.jpg" width="400" height="300"><img src="http://i47.tinypic.com/5l4474.jpg" width="400" height="300"></div>

Du schliesst deine Bilder in einen Wrapper, der etwas breiter oder genau so breit ist wie die Bilder in ihrer Gesammtheit. Natuerlich wird das bei kleineren Aufloesungen, sagen wir mal .. bescheiden aussehen aber es loest dein primaeres Problem, ohne dir einen allzugrossen Workaround zu basteln.

Im uebrigen, brauchst du ueberhaupt kein float, denn Bilder sind inline-Elemente, die werden solange nebendeinander dargestellt, solange es genug Platz gibt.