Most of you guys have missed the boat. Running 200s and 300s isn't going to improve your 400 that much, unless you're a short distance sprinter moving UP to the 400. For any mid-D or distance runner, improving 400m time is mainly a matter of increasing max sprint speed. To do this you have to do short sprints that allow you to run at near all out speed without sacrificing form. "a" is on the money. Do 100m reps on the track with long recoveries, and do short hill sprints. Do something like 12x100m with a running start with the first two kind of being warmups like 16s, then the next 10 should be in around 14s if you're a 60s 400m runner. You gotta go by feel though. Don't go all out the first few times you do it or you might hurt yourself.
The short sprints on the track improve your leg turnover and form, while the hill sprints improve the power of your pushoff. Both are vital for increasing speed.
For anyone but sprinters, running the 800 is largely about speed. You can't run 2:00 if a 28.0 200m feels tough. The year I implemented short sprints into my training I improved my 800m time by 4 seconds, and it was just because I could go out in 56.x and not feel like I was balls out.
All that being said, don't overdo the short stuff. Just doing 4x100m twice a week after your workouts or runs will help. I would only devote maybe one day every two weeks to a pure speed workout.