If I create a client program using say C#, or develop something for the Android or Iphone, can I use Google App Engine for the server and communicate with the client application mentioned above?
Google App Engine communicates in the way that any other web server would. Your C# client can access Google App Engine-hosted websites and use them as a basis for communication. C# makes this fairly easy and straightforward to accomplish using System.Net.WebClient.
(On the other hand, it is more difficult to have Google App Engine "push" messages out to your clients, if they aren't polling (or "pulling") them. One strategy is to use App Engine's XMPP/Jabber support.)
We used Google App Engine as a back-end for some mobile game projects. I strongly recommend it.
It's simple and very awesome, and HTTP is simple to implement on most platforms as many include API's for it. You must design the systems with a RESTFUL approach.
I also wrote an internal stat tracking and debugging tool using Goole App Engine which we used internally to monitor our test builds for console games.
You shouldn't have any problems with using Google Apps as a server for your client via HTTP. I'd even recommend it, especially since it is a free service (with some limitations).