Export just rows modified in last month (date defined by user)
This would depend on the table having a timestamp column.
mysqldump has a --where option that you can define when dumping a specific table
EXAMPLE
If you have a table called mydb.mytab defined as follows
CREATE TABLE mytable
(
    id INT NOT NULL AUTO_INCREMENT,
    tm TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
);

You could specify the date range on that table as follows (for June 2013):
WHERE_CLAUSE=&quot;(tm &gt;= '2013-06-01 00:00:00') AND&quot;
WHERE_CLAUSE=&quot;${WHERE_CLAUSE} (tm &lt; '2013-07-01 00:00:00')&quot;
mysqldump -uroot -p mydb mytable --where=&quot;${WHERE_CLAUSE}&quot;

This would be most helpful since timestamps can be updated automatically.
I wrote a post on Aug 15, 2011 on how to use --where to dump a subset of data not based on a timestamp : Is it possible to mysqldump a subset of a database required to reproduce a query?
If you do not have a timestamp column in the desired tables, you are better of just keeping all binary logs generated during any given month.