Dan, sorry about the delay; it has been a busy few days. While Lou is correct, the fact that Asterisk is (essentially) free, that is not the primary reason for moving away from Mitel. I live in the Caribbean and it is getting more and more difficult to get support from the local authorized Mitel dealer. I worked for Mitel for years, I lead the customer trials of the 3300 back in the day and I might be one of the very few people who ever installed an Ipera2000. My responsibilities were primary on the network (IP) side of issues but it is fair to say that I am very familiar with the product and believe in it. Having said that, Mitel's licensing is byzantine to say the least. Where I live it can take six months to get a quote and even longer to get something replaced (we once waited for a YEAR, to have an ASU replaced, finally giving up and buying one on eBay). Another customer had their "new" MN3300 sit on a shelf for over a year waiting for the local dealer to install it when I finally decided to do it myself. In North America, you know you can pick up the phone and get an authorized dealer to get you the service and support you need, this is a good reason to pay a premium for the equipment you purchase. In our case, we can no longer justify the premium (plus the additional expense incurred for just being on an island).
In answer to your question specifically, comparing Asterisk and an ICP (or a Cisco UC or anything else that looks like a traditional telephone system) is an apples and oranges proposition. Asterisk includes everything you can think of from a "PBX" perspective plus anything else you can build via scripting. Let me illustrate with a few examples. A local dial tone provider (not the Mitel dealer) needed some demonstration applications for a SIP - PRI gateway I built using Asterisk. In an afternoon I built a application that when called would provide information on the local times and values of high and low tide as well as sunrise and sunset. These are important things to know for the boating community. I took the data from a an xtide server I had, performed text to pre-recorded times and height values sound file lookups, glued them together (they were .gsm files so you can just tack them together) and it was done. Another example was for a hotel that needed a special way to handle 911 calls. Picking up the phone here and calling 911 is a bit hit or miss, your call may not actually be answered, but you still need to try. I built a simple conferencing application so that every time someone dialed 911 or pressed the emergency call button in an elevator, the call was dropped onto a conference bridge, then 911 was called as well as the local duty manager and in the case of the elevator button, maintenance. Additionally, email and text messages were sent to relevant parties and finally each call was recorded. I have built numerous other applications for Asterisk for the simple reason that it is easy to do so.
Most recently I have completed a Hyatt / Encore integration for Asterisk that mimics the Mitel 3300 in every way except linked suites (and I'm working on that now). Couple that with the ability to generate a CDR record that looks like a basic Mitel CDR (the trunk never changes, but no one cares about that) and you have something that can drop right into one of Mitel's best served niche markets; hospitality. Next I will be building a call accounting system that hooks into the hospitality solution (they can cost $5K all on their own) and the only thing I need to add is the ability to return the information I'm already generating via the CDR requirement as HOBIC formatted information and I will have an Asterisk based solution that should mate with any PMS system. It is important to note that I am not a particularly good programmer, but I do understand how to solve problems. When I solve problems using a Mitel 3300 (for example) I am working for Mitel, when I use Asterisk to solve those same problems, Asterisk is working for me. As a consultant this obviously improves my bottom line.
While Asterisk is certainly not free, I charge a considerable amount of money to install and configure a system (I have been using it since version 0.7.) it will always cost less than a traditional solution simply because it is free from licensing costs and is open source. It runs on everything from a home router running OpenWRT to the largest server platform you can find. Embedded systems can be found for $99 and SIP / IAX / MGCP / H.323 gateways can be found everywhere. A T1/E1 card costs around $350 / port and the full range of ISDN / R2 / Qsig protocols are supported and you can even use SS7 (which I have: I connected an Asterisk server to a Nokia / Siemens UMTS switch for one of the local cellular providers). The right USB dongle from Huawei will give you a cellular channel that supports SMS messages and voice and costs around $45. You can adapt an analog FXS port to connect an Asterisk server to a two way radio system. Text to speech and speech to text, IMAP integration for voice mail, call queuing systems of any complexity, unlimited tenanting, dynamic dial plans, these and many more applications are freely available. If you are willing to write code (Perl, PHP, Python, Ruby, C, C++, Java, shell script, etc.) you can write your own applications. Both the AGI (dynamic dial plans) and API are fully documented and support from the community is readily available. GUI console applications in the style of the 5550 are also available (some free, some not).
I am obviously a strong believer in Asterisk (and open source in general), if you haven't tried it, you should download a FreePBX ISO and give it an install on some old PC you have lying around. Flip a couple of Mitel phones into SIP mode and start experimenting. It's not for everyone, but it costs nothing to try.
John