I initially liked Twilio but I actually went with Tropo for a small project as the ability to upload a Ruby script kept everything easy. No need to learn another language or even use a RESTful api. Just write the script, upload and you're good to go.
I believe Twilio has wrappers around their REST API in various languages, so you don't have to deal with any of the web stuff.
However, you'd still have to host your own scripts, so if Tropo does your script hosting, there's that advantage. How do you communicate with the rest of your App though? Or does it exist entirely on the Tropo 'cloud'?
Care to share what the app is if it's a public thing?
yeah, Tropo hosts the scripts for you so it meant that all the telephony stuff is handled by tropo.rb (on their servers) and this posts the mp3 to my sinatra app (phone2post.rb), which can limit itself to acting as a proxy for Posterous. I prefer the separation of concerns that this permitted me. For a more complicated app, I can definitely see the advantages of controlling the telephony side from the web app but in this case it wasn't necessary.