Just a cheap $20 linode account will give you 200GB. you can offload the pictures to a slice or amazon S3 and you should be better off than the $30/mo. It is a bit apples to oranges because I don't know what the specs are on your current hosting.(like how many domains they give you, the speed of the actual data center connections to the outside world, redundancy, etc....)
The slice way is probably not for everyone because you will need to setup and manage the server but for the easy route you can offload the large images to S3 and that should be fairly cheap for that.
That would work, but I'd probably go even cheaper and get a basic HostGator account or something similar (~$10/month). Really depends on what your needs are (you won't get SSH with shared hosting, but you'll have all the bandwidth / disk space you need).
But 100k pageviews a month is nothing, and no host should be giving you a hard time about that. If you're hogging the CPU, that would be a more reasonable complaint.
In general, its always a good idea to reevaluate your hosting. Chances are there's a better deal going, much like cable or phone service, and its a good fire drill to change hosts now and then.
The slice way is probably not for everyone because you will need to setup and manage the server but for the easy route you can offload the large images to S3 and that should be fairly cheap for that.