There are a few common ways to bring an asset from one chain to another.
First, send the asset to a smart contract, and a (network of) validator will verify that the asset is locked in the smart contract, then mint a new token on the destination blockchain and send it to your wallet on that blockchain. The newly mint token is usually referred to as a "wrapped" token. And you can "unwrap" the token by "burning" the wrapped token. A validator will verify that the wrapped token is burned and unlock your locked token back to you on the original blockchain. Example: Wormhole bridge
Some protocols support cross-chain communications: from tokens to data. E.g. Polkadot.
Not all blockchains support (Turing-complete) programming or smart contracts (e.g., Bitcoin, Stellar). Suppose an entity has tokens on different blockchains and allows users to purchase the wrapped token on another chain with prices determined by an oracle. For example, "wrapped bitcoin" has Bitcoin under custody and mint WBTCs on Ethereum. You can check out how it works here. Technically, stablecoins are a kind of custody solution, too.
Stablecoins like USDC allow programmatically sending USDC from one blockchain to another using their API.
It is also possible to have service providers that own assets on multiple blockchains to support borrowing and issuing assets cross-chain. They can be incentivized by interest payments. E.g. Stellar Anchors can be used to handle assets from different chains.
What are the other ways to support multiple blockchains? Please feel free to share your knowledge in the comments.