I'd consider springing for a Line6 Toneport. It's basically a USB audio interface with some guitar and bass amp models from the PODs thrown in. There are inputs for line-level instruments (keyboards, drum machines, what-have-you) and mics, with switches to sort them for guitars and basses. The higher end Toneport model has phantom power too, in case you've got a condensor mic that needs that.
There are cheaper, more basic solutions than the Toneports, of course, but I think they offer respectable "bang for the buck". I've got a USB audio interface that does all the Toneport UX2 does, but I'd kind of like the amp models, so I'm think of getting a UX2 to replace it later this year (once I've recovered from buying my new Crawlers and tricking out the guitar ;)).
For drums .....
Well, the easiest thing to do is buy a pack of drum loops. A company like Drums on Demand sells sample packs in different styles with upwards of 1500 loops per pack for between USD 50 and 80. I've used some of their free loops in GarageBand; there will be like groups of loops that go together, individually identified as being most suitable for intros, choruses, endings, whatever. It is a fairly brainless task to line up some loops, creatively trim or stretch here and there, and have some perfectly decent sounding drums tracks in no time flat. (This is a great method IMO for blocking out a song you're writing even if you go back and replace the loops with something else later.)
The next step up is arming yourself with a drum machine (or sequencer to be used as a drum machine) and some decent samples (I like ns_kit) and sit down to program some drums. This can get as simple or as complicated as you like, but obviously affords you to option of infinitely more flexibility than loops; you're limited only by the range of available samples and your patience for tweaking drum parts :)
Then again, the truly keen ;) could buy some e-drums or a TrapKat or something (you could even use a keyboard) and physically play in your basic drum parts to be captured as MIDI, layering them and tweaking them by hand to get what you want. I think this would be fun, but I've stuck with loops and drum machine programing so far!