I have some basic understanding what Amazon SimpleDB is, but according to the Amazon DynamoDB description it seems to be almost the same: a NoSQL Key-value store service.
Can someone simply explain the main differences between them and tell in which cases to choose one over the other.
This is addressed by the respective FAQ Q: How does Amazon DynamoDB differ from Amazon SimpleDB? Which should I use? (hash link no longer works, but use in-page Find to locate question within page) to some extent already, with the most compact summary at the end of the paragraph:
So it's a trade off between performance/scalability and simplicity/flexibility, i.e. for simpler scenarios it might still be easier getting started with SimpleDB to avoid the complexities of architecturing your application for DynamoDB (see below for a different perspective).
The linked FAQ entry references Werner Vogel's Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications as well, which is indeed an elaborate and thus highly recommended read concerning the History of NoSQL at Amazon in general and Dynamo in particular; it contains many more insights addressing your question as well, e.g.
Obviously DynamoDB has been introduced to address this and could thus be qualified as a successor of SimpleDB rather than 'just' amending their existing NoSQL offering:
Werner's Summary suggests DynamoDB to be a good fit for applications of any size now accordingly: