Though not exactly the highest quality, you can build surprisingly decent mic preamps from standard decent-quality op-amps. I think one of the tricks is to aim for several stages and use modest gain in each stage, rather than try to squeeze tons of gain from a single stage. What this does is to optimize the gain-bandwidth product. Remember that bandwidth decreases with greater gain. By keeping gain quite modest, you end up with a gain stage that has no problem faithfully replicating stuff way out at the perimeter of the mic's high end. Even though the final overall output may be quite substantial, from each stage's perspective, it is only amplifying a little bit. The linked-to preamp at ESP also divvys up the overall gain between the op-amp and discrete stages for that very reason.
A pair of NE5532 or LM833-based op-amps, with a gain of x10 each yields a combined gain of x100, which is a decent amount of boost for an SM57 and likely more than enough for your soundcard to deliver decent sampling. The first stage can be built as a instrumentation amp with differential inputs (i.e., balanced but with gain). Make a point of using 1% resistors. The nice thing about using op-amps is that its a whole lot easier to match resistors than it is to match transistors.
Like I say, not necessarily the finest quality you can get, but surprisingly good.