By itself, Ironmonger is surprisingly strong. Solo play suggests that straight Ironmonger-Money is about equivalent to Smithy-Money: 14-17 turns to get to 4 Provinces and some Duchies.
In a more diverse deck, Ironmonger is sort of like three different cards, depending on what it hits:
Treasure: +1 Card, +1 Action, +$1, could discard Copper. This card is like a Lab in a way: you are drawing the Copper and discarding it, but you still get the +$1. If you aren’t drawing Copper, then it’s about equivalent to Peddler, but with some info about your next card. On its own it’d probably cost about $4-$5.
Victory: +2 Cards, +1 Action, can discard a Victory card. This is strictly better than a Laboratory, since it’s sort of like +3 Cards / +1 Action with the discard. So on its own it’d cost at least $5.
Action: +1 Card, +2 Actions, could but probably won’t discard an Action. This is a Village, and probably not enough bonus on top of the Village to differentiate it from a typical vanilla $3 Village.
In a vacuum, Ironmonger is at its best when it’s discarding Victory cards, and at its least helpful when it is hitting Action cards. But of course, a Village is a Village, and if you need a Village you’ll still be happy to pay $4 for it.
The key, though, is that although Ironmonger never hurts your deck, you shouldn’t try to set expectations for it. If you read “Ironmonger is at its best when it’s discarding Victory cards” and conclude that you should do nothing but buy Victory cards and Ironmonger, well, you run into the same problem you do with Crossroads: you are constantly drawing a lot of cards, but they are just all green cards anyway! And if you try to use Ironmonger as a Village, it’s not really as reliable as just a simple $3 vanilla Village.
What Ironmonger really is is a kind of weakened-but-more-reliable Tribute. You can’t really count on what it’s going to do for you, but you can count on the fact that it won’t screw you over. No matter what you’ll get something decent.
Ironmonger and dual type cards
Of course, like Tribute, Ironmonger gets way better with dual-type cards.
Victory/Action: +2 Cards, +2 Actions
Victory/Treasure: +2 Cards, +1 Action, +$1
Both of these are strictly better than Lab.
Ironmonger and opportunity cost
So Ironmonger is always good for your deck. That means you should always be buying it, right?
Not really. Consider Spy — it’s a decent card, can’t really hurt your deck, but you won’t win the game buying nothing but Spies. Like the Looking Glass, you can’t just stand still in Dominion: if you aren’t moving towards the finish, you may as well be moving backwards. The opportunity cost of Ironmonger is passing up a chance at Bridge, or Throne Room, or some other powerful card that is pushing you towards endgame.
That being said, Ironmonger tends to be a bit better than most other spammable cantrips, because early in your engine build, Ironmonger is likely to hit Copper and Estates, cycling your deck a bit and giving you the more powerful effects; later, as you trim your deck, set up filtering, and/or increase action density, Ironmonger gives you the +Actions you need.
The basic takeaway, though, is that Ironmonger in an engine works much better with a gainer, so that you’re not giving up the opportunity cost of buying a different $4.
Works with/Conflicts with
In addition to the above, Ironmonger works well with cards that care about the top card of your deck. Mystic is the obvious choice but there may be others (Lookout, perhaps).
Like Tribute, Ironmonger does not work well with Cursers, since hitting a curse reduces Ironmonger to a straight cantrip (which is worse than Vagrant, a $2). It’s a mixed bag with Looters; hitting Ruins is a Village plus Ruins filter, which isn’t bad for a $4 but it isn’t great. More important is that in most cases you’re likely better off just going for the Looter (Marauder/Cultist) or ignoring it (Death Cart, unless of course there’s a Death Cart enabler on board) than comboing it with Ironmonger. That being said, Ironmonger is a strong choice if you are building an engine that ignores the available Looter attacks.