Is there an advantage of using one over the other?
I know that the ENC28J60 module is only 10 Mbps and does not have the microSD card slot.
From reading online, it appears that the ENC28J60 was initially cheaper, but I recently purchased an Ethernet shield from an USA seller for $7.99 including shipping on eBay.
So I am left wondering whether I should even bother with the ENC28J60 module other than for its small size.
You can get W5100 modules that are the same size as the ENC28J60 ones, though a little bit more expensive. you can also get W5500 modules that are even smaller, and a bit more expensive than the W5100 ones. The ENC28J60 and the W5500 are not compatible with the stock Ethenet library that comes with the arduino.cc IDE so you would need to install the correct library for those modules. My experience is that the ENC28J60 is not as reliable as the W5x00. I don't know if the problem is the hardware or the library(UIPEthernet) but I ended up giving up on using the ENC28J60 and have been happy with the W5100 and W5500 modules ever since. You can get Ethernet shields with any of these chips on them, the original Arduino Ethernet Shield used the W5100 but the arduino.org Ethernet Shield 2 uses the W5500 so you need to pay attention to which chip is on the shield if you buy one. The shields are easier to install than the modules but I prefer the modules. The shields typically do have a SD card slot on them which might be useful but most of my projects don't use one so it provides no benefit.
Beware the cheap chinese W5100 modules. A lot of them have an incorrect resistor network on the RJ45 connector which causes issues connecting to switches.
If you get quality boards this should not be a problem.
I have also used the cheap ENC28J60 boards. These have generally been pretty good. They are a little harder to program to as the library uipEthernet is not 100% compatible with the arduino library. But if you are just connecting to one device they work fine ... and they are incredibly cheap ... less that $3 each.